TORCHMASTER | Masters of Welding Artistry
https://cdn.tailwindcss.com
tailwind.config = {
theme: {
extend: {
colors: {
brand: {
900: ‘#1a0f0a’,
800: ‘#2d1810’,
700: ‘#3d2218’,
600: ‘#4e2c1f’,
500: ‘#6b3d2b’,
400: ‘#8b5a3c’,
300: ‘#a87252’,
200: ‘#c9956f’,
100: ‘#e8c4a8’,
},
copper: {
DEFAULT: ‘#b87333’,
light: ‘#d4956a’,
dark: ‘#8b5a2b’,
},
steel: {
DEFAULT: ‘#71797E’,
light: ‘#a8aeb3’,
dark: ‘#4a4f54’,
}
},
fontFamily: {
display: [‘Cormorant Garamond’, ‘serif’],
body: [‘DM Sans’, ‘sans-serif’],
}
}
}
}
:root {
–bg: #0d0705;
–bg-elevated: #1a0f0a;
–fg: #f5ebe0;
–fg-muted: #a89080;
–accent: #b87333;
–accent-light: #d4956a;
–border: #3d2218;
–card: #2d1810;
}
* {
scrollbar-width: thin;
scrollbar-color: var(–accent) var(–bg-elevated);
}
*::-webkit-scrollbar {
width: 8px;
}
*::-webkit-scrollbar-track {
background: var(–bg-elevated);
}
*::-webkit-scrollbar-thumb {
background: var(–accent);
border-radius: 4px;
}
html {
scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
body {
background: var(–bg);
color: var(–fg);
font-family: ‘DM Sans’, sans-serif;
overflow-x: hidden;
}
.font-display {
font-family: ‘Cormorant Garamond’, serif;
}
/* Noise texture overlay */
.noise-overlay {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 9999;
opacity: 0.03;
background-image: url(“data:image/svg+xml,%3Csvg viewBox=’0 0 256 256′ xmlns=’http://www.w3.org/2000/svg’%3E%3Cfilter id=’noise’%3E%3CfeTurbulence type=’fractalNoise’ baseFrequency=’0.9′ numOctaves=’4′ stitchTiles=’stitch’/%3E%3C/filter%3E%3Crect width=’100%25′ height=’100%25′ filter=’url(%23noise)’/%3E%3C/svg%3E”);
}
/* Gradient backgrounds */
.bg-gradient-radial {
background: radial-gradient(ellipse at center, var(–bg-elevated) 0%, var(–bg) 70%);
}
.bg-gradient-hero {
background:
radial-gradient(ellipse 80% 50% at 50% -20%, rgba(184, 115, 51, 0.15) 0%, transparent 50%),
radial-gradient(ellipse 60% 40% at 80% 60%, rgba(139, 90, 43, 0.1) 0%, transparent 40%),
linear-gradient(180deg, var(–bg) 0%, var(–bg-elevated) 100%);
}
/* Text effects */
.text-gradient-copper {
background: linear-gradient(135deg, var(–accent-light) 0%, var(–accent) 50%, #8b5a2b 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.text-shadow-glow {
text-shadow: 0 0 40px rgba(184, 115, 51, 0.3);
}
/* Particle canvas */
#particle-canvas {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 1;
}
/* Entrance animations */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(40px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes scaleIn {
from {
opacity: 0;
transform: scale(0.9);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes slideInLeft {
from {
opacity: 0;
transform: translateX(-60px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes lineGrow {
from { transform: scaleX(0); }
to { transform: scaleX(1); }
}
.animate-fade-in-up {
animation: fadeInUp 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
opacity: 0;
}
.animate-fade-in {
animation: fadeIn 1.2s ease forwards;
opacity: 0;
}
.animate-scale-in {
animation: scaleIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
opacity: 0;
}
.animate-slide-left {
animation: slideInLeft 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
opacity: 0;
}
/* Stagger delays */
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }
.delay-600 { animation-delay: 0.6s; }
.delay-700 { animation-delay: 0.7s; }
.delay-800 { animation-delay: 0.8s; }
/* Scroll reveal */
.reveal {
opacity: 0;
transform: translateY(30px);
transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.visible {
opacity: 1;
transform: translateY(0);
}
.reveal-left {
opacity: 0;
transform: translateX(-40px);
transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-left.visible {
opacity: 1;
transform: translateX(0);
}
.reveal-right {
opacity: 0;
transform: translateX(40px);
transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-right.visible {
opacity: 1;
transform: translateX(0);
}
.reveal-scale {
opacity: 0;
transform: scale(0.95);
transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-scale.visible {
opacity: 1;
transform: scale(1);
}
/* Button styles */
.btn-primary {
position: relative;
background: linear-gradient(135deg, var(–accent) 0%, #8b5a2b 100%);
color: var(–fg);
padding: 1rem 2.5rem;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
font-size: 0.75rem;
overflow: hidden;
transition: all 0.4s ease;
}
.btn-primary::before {
content: ”;
position: absolute;
inset: 0;
background: linear-gradient(135deg, var(–accent-light) 0%, var(–accent) 100%);
opacity: 0;
transition: opacity 0.4s ease;
}
.btn-primary:hover::before {
opacity: 1;
}
.btn-primary span {
position: relative;
z-index: 1;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 10px 40px rgba(184, 115, 51, 0.3);
}
.btn-primary:focus-visible {
outline: 2px solid var(–accent-light);
outline-offset: 4px;
}
.btn-outline {
border: 1px solid var(–accent);
color: var(–accent);
padding: 1rem 2.5rem;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
font-size: 0.75rem;
transition: all 0.4s ease;
background: transparent;
}
.btn-outline:hover {
background: var(–accent);
color: var(–fg);
}
.btn-outline:focus-visible {
outline: 2px solid var(–accent-light);
outline-offset: 4px;
}
/* Card styles */
.card-elevated {
background: linear-gradient(135deg, rgba(45, 24, 16, 0.8) 0%, rgba(26, 15, 10, 0.9) 100%);
border: 1px solid rgba(184, 115, 51, 0.15);
backdrop-filter: blur(10px);
transition: all 0.5s ease;
}
.card-elevated:hover {
border-color: rgba(184, 115, 51, 0.4);
transform: translateY(-4px);
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}
/* Timeline */
.timeline-line {
position: absolute;
left: 50%;
top: 0;
bottom: 0;
width: 1px;
background: linear-gradient(180deg, transparent 0%, var(–accent) 10%, var(–accent) 90%, transparent 100%);
transform: translateX(-50%);
}
.timeline-dot {
width: 12px;
height: 12px;
border-radius: 50%;
background: var(–accent);
border: 2px solid var(–bg);
box-shadow: 0 0 20px rgba(184, 115, 51, 0.5);
}
/* Image hover effects */
.img-reveal {
overflow: hidden;
}
.img-reveal img {
transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.img-reveal:hover img {
transform: scale(1.05);
}
/* Divider */
.divider {
height: 1px;
background: linear-gradient(90deg, transparent 0%, var(–border) 50%, transparent 100%);
}
/* Focus states */
a:focus-visible, button:focus-visible {
outline: 2px solid var(–accent);
outline-offset: 4px;
}
/* Custom selection */
::selection {
background: rgba(184, 115, 51, 0.4);
color: var(–fg);
}
/* Loading state */
.loading-shimmer {
background: linear-gradient(90deg, var(–card) 0%, var(–border) 50%, var(–card) 100%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
/* Mobile menu */
.mobile-menu {
transform: translateX(100%);
transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.mobile-menu.open {
transform: translateX(0);
}
/* Counter animation */
.counter {
font-variant-numeric: tabular-nums;
}
/* Parallax container */
.parallax-container {
perspective: 1px;
overflow-x: hidden;
overflow-y: auto;
}
.parallax-layer {
will-change: transform;
}
65 Years of Heritage · Crafted with Precision
Writing with Flame
The Poetry of Industry
Since the birth of our first torch in 1958, TORCHMASTER has interpreted
every arc of the welding art with ultimate craftsmanship.
Est. 1958
One Torch, One Promise
In 1958, at the dawn of modern industry, TORCHMASTER’s first welding torch was born in the hands of a master craftsman. In that workshop, there were only a few old machine tools and a group of young people full of dreams.
For sixty-five years, we have witnessed every technological revolution from manual welding to intelligent welding. But some things remain unchanged—the persistent pursuit of perfection, the responsibility for every weld, and the adherence to the spirit of craftsmanship.
Today, TORCHMASTER products serve more than 40 countries worldwide. From deep-sea drilling platforms to aerospace, wherever reliable connections are needed, our story continues.
1958
The Beginning
In a humble workshop, the first TORCHMASTER torch was born. Founder Mr. Li Mingyuan established the vow of “Quality First,” becoming the core value that continues to this day.
1985
Technological Breakthrough
Developed the first generation of inverter welding machines, reducing size by 60% and increasing efficiency by 40%. This breakthrough established TORCHMASTER’s leading position in the industry.
2008
Global Expansion
Products entered the European market with CE certification. In the same year, a strategic partnership was established with the German Welding Institute, opening a new chapter of international collaboration.
2023
The Smart Era
Launched the new generation of intelligent welding systems, integrating AI process optimization and real-time quality monitoring, elevating welding precision to the micron level.
Precision
Micron-Level Precision
Using five-axis CNC machining centers combined with laser measurement systems to ensure every part’s precision is within ±0.005mm.
Quality
Rigorous Testing
Each product passes 37 strict tests, including high temperature, high pressure, salt spray corrosion, and continuous operation under extreme conditions.
Innovation
Advanced Materials
Collaborating with the Institute of Materials to develop new high-temperature alloys, increasing product lifespan by over 200%.
Core Technology
Intelligent Arc Control
The 4th generation intelligent arc control system, developed over 8 years, achieves true “zero-defect” welding by real-time monitoring of the weld pool and automatic parameter adjustment. Built-in database of over 100,000 welding processes adapts to different materials and conditions.
Adaptive parameter adjustment, response time <5ms
Real-time defect detection, 99.7% accuracy
Cloud-based process database optimization
Product Series
Our Products
From manual welding to automation solutions Meeting every industrial need
All Products
MIG/MAG Torches
TIG Torches
Plasma Torches
Robot Torches
Oil & Gas
Providing high-pressure, corrosion-resistant welding solutions for deep-sea platforms and refinery pipelines. Certified by API and ASME.
Offshore
Pipelines
Storage Tanks
Aerospace
Precision welding for titanium and superalloys, serving aircraft and rocket engines. NADCAP certified for aerospace special processes.
Fuselage
Engines
Spacecraft
New Energy Vehicles
Core solutions for battery pack sealing and body aluminum welding, supporting lightweight and safety improvements.
Battery Systems
Body Structure
Motor Parts
Heavy Equipment
Large structural welding for construction machinery, mining equipment, and port machinery, providing reliable high-power tools.
Construction
Mining
Port Machinery
0
Annual Capacity (Units)
TORCHMASTER
65 years of welding excellence. Forging industrial quality with craftsmanship.
© 2024 TORCHMASTER. All rights reserved.
// Product Data
const products = [
{
id: 1,
name: ‘TM-PRO 500’,
category: ‘mig’,
tagline: ‘Professional MIG Torch’,
description: ‘Top choice for high-load industrial applications, equipped with intelligent arc control and 500A continuous capacity.’,
image: ‘https://images.unsplash.com/photo-1504328345606-18bbc8c9d7d1?w=600&q=80’,
specs: [‘500A Rated Current’, ‘100% Duty Cycle’, ‘Smart Temp Control’]
},
{
id: 2,
name: ‘TM-TIG 350P’,
category: ‘tig’,
tagline: ‘Precision TIG Torch’,
description: ‘Micro-plasma technology designed for precision thin plate welding, with current adjustment accuracy of 0.1A.’,
image: ‘https://images.unsplash.com/photo-1565793298595-6a879b1d9492?w=600&q=80’,
specs: [‘350A Peak Current’, ‘HF Start’, ‘Pulse Mode’]
},
{
id: 3,
name: ‘TM-CUT 120’,
category: ‘plasma’,
tagline: ‘Plasma Cutting Torch’,
description: ‘High-pressure plasma cutting with no heat-affected zone. Clean cuts require no secondary processing.’,
image: ‘https://images.unsplash.com/photo-1581091226825-a6a2a5aee158?w=600&q=80’,
specs: [‘120A Cutting Current’, ’35mm Cut Thickness’, ‘Oil-Free Compressor’]
},
{
id: 4,
name: ‘TM-ROBO A6’,
category: ‘robot’,
tagline: ‘Robot Torch System’,
description: ‘Dedicated torch for 6-axis collaborative robots with auto TCP calibration. Tool change time under 3 seconds.’,
image: ‘https://images.unsplash.com/photo-1581092160607-ee22621dd758?w=600&q=80’,
specs: [‘600A Rated Current’, ‘Water-Cooled’, ‘Quick-Change’]
},
{
id: 5,
name: ‘TM-MIG 300’,
category: ‘mig’,
tagline: ‘Lightweight MIG Torch’,
description: ‘Ergonomic design weighing only 1.2kg, suitable for extended manual operation.’,
image: ‘https://images.unsplash.com/photo-1533093580868-9e28f5c58e7a?w=600&q=80’,
specs: [‘300A Rated Current’, ‘60% Duty Cycle’, ‘Ultra-Light’]
},
{
id: 6,
name: ‘TM-TIG 200AC/DC’,
category: ‘tig’,
tagline: ‘AC/DC TIG Torch’,
description: ‘Supports AC welding for aluminum alloys with square wave control and automatic oxide cleaning.’,
image: ‘https://images.unsplash.com/photo-1504328345606-18bbc8c9d7d1?w=600&q=80’,
specs: [‘200A AC/DC’, ‘Adjustable Frequency’, ‘Pulse TIG’]
}
];
// Initialize
document.addEventListener(‘DOMContentLoaded’, function() {
initParticles();
initScrollReveal();
initCounters();
initMobileMenu();
initProductTabs();
renderProducts(‘all’);
initHeaderScroll();
initFormValidation();
});
// Particle System (Welding Sparks)
function initParticles() {
const canvas = document.getElementById(‘particle-canvas’);
if (!canvas) return;
const ctx = canvas.getContext(‘2d’);
let particles = [];
let animationId = null;
const prefersReducedMotion = window.matchMedia(‘(prefers-reduced-motion: reduce)’).matches;
function resize() {
canvas.width = canvas.offsetWidth;
canvas.height = canvas.offsetHeight;
}
resize();
window.addEventListener(‘resize’, resize);
class Particle {
constructor() {
this.reset();
}
reset() {
this.x = Math.random() * canvas.width;
this.y = canvas.height + 10;
this.vx = (Math.random() – 0.5) * 2;
this.vy = -Math.random() * 3 – 1;
this.life = 1;
this.decay = Math.random() * 0.02 + 0.005;
this.size = Math.max(0.5, Math.random() * 2);
this.hue = 25 + Math.random() * 20;
}
update() {
this.x += this.vx;
this.y += this.vy;
this.vy += 0.02;
this.life -= this.decay;
if (this.life <= 0) {
this.reset();
}
}
draw() {
const alpha = Math.max(0, Math.min(1, this.life));
const color = 'rgba(' + Math.floor(184 + this.hue) + ',' + Math.floor(115 + this.hue * 0.5) + ',' + Math.floor(51) + ',' + alpha.toFixed(2) + ')';
ctx.beginPath();
ctx.arc(this.x, this.y, Math.max(0.1, this.size), 0, Math.PI * 2);
ctx.fillStyle = color;
ctx.fill();
}
}
function createParticles() {
const count = prefersReducedMotion ? 20 : 50;
for (let i = 0; i {
p.update();
p.draw();
});
animationId = requestAnimationFrame(animate);
}
createParticles();
if (!prefersReducedMotion) {
animate();
} else {
ctx.clearRect(0, 0, canvas.width, canvas.height);
particles.forEach(p => p.draw());
}
}
// Scroll Reveal
function initScrollReveal() {
const reveals = document.querySelectorAll(‘.reveal, .reveal-left, .reveal-right, .reveal-scale’);
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add(‘visible’);
}
});
}, {
threshold: 0.1,
rootMargin: ‘0px 0px -50px 0px’
});
reveals.forEach(el => observer.observe(el));
}
// Counter Animation
function initCounters() {
const counters = document.querySelectorAll(‘.counter’);
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = parseFloat(counter.dataset.target);
const duration = 2000;
const startTime = performance.now();
const isDecimal = target % 1 !== 0;
function updateCounter(currentTime) {
const elapsed = currentTime – startTime;
const progress = Math.min(elapsed / duration, 1);
const easeOut = 1 – Math.pow(1 – progress, 3);
const current = target * easeOut;
if (isDecimal) {
counter.textContent = current.toFixed(1);
} else {
counter.textContent = Math.floor(current);
}
if (progress observer.observe(counter));
}
// Mobile Menu
function initMobileMenu() {
const toggle = document.getElementById(‘menu-toggle’);
const menu = document.getElementById(‘mobile-menu’);
const menuIcon = toggle.querySelector(‘.menu-icon’);
const closeIcon = toggle.querySelector(‘.close-icon’);
const menuLinks = menu.querySelectorAll(‘a’);
function openMenu() {
menu.classList.add(‘open’);
menu.setAttribute(‘aria-hidden’, ‘false’);
toggle.setAttribute(‘aria-expanded’, ‘true’);
menuIcon.classList.add(‘hidden’);
closeIcon.classList.remove(‘hidden’);
document.body.style.overflow = ‘hidden’;
}
function closeMenu() {
menu.classList.remove(‘open’);
menu.setAttribute(‘aria-hidden’, ‘true’);
toggle.setAttribute(‘aria-expanded’, ‘false’);
menuIcon.classList.remove(‘hidden’);
closeIcon.classList.add(‘hidden’);
document.body.style.overflow = ”;
}
toggle.addEventListener(‘click’, () => {
if (menu.classList.contains(‘open’)) {
closeMenu();
} else {
openMenu();
}
});
menuLinks.forEach(link => {
link.addEventListener(‘click’, closeMenu);
});
document.addEventListener(‘keydown’, (e) => {
if (e.key === ‘Escape’ && menu.classList.contains(‘open’)) {
closeMenu();
}
});
}
// Product Tabs
function initProductTabs() {
const tabs = document.querySelectorAll(‘.product-tab’);
tabs.forEach(tab => {
tab.addEventListener(‘click’, () => {
tabs.forEach(t => {
t.classList.remove(‘active’);
t.classList.remove(‘border-copper/30’);
t.classList.add(‘border-brand-700’);
t.setAttribute(‘aria-selected’, ‘false’);
});
tab.classList.add(‘active’);
tab.classList.remove(‘border-brand-700’);
tab.classList.add(‘border-copper/30’);
tab.setAttribute(‘aria-selected’, ‘true’);
const category = tab.dataset.category;
renderProducts(category);
});
});
}
// Render Products
function renderProducts(category) {
const grid = document.getElementById(‘products-grid’);
if (!grid) return;
const filtered = category === ‘all’
? products
: products.filter(p => p.category === category);
grid.innerHTML = filtered.map((product, index) => `
${product.tagline}
${product.name}
${product.description}
${product.specs.map(spec => `
${spec}
`).join(”)}
Learn More
`).join(”);
initScrollReveal();
}
// Header Scroll Effect
function initHeaderScroll() {
const header = document.getElementById(‘header’);
let lastScroll = 0;
window.addEventListener(‘scroll’, () => {
const currentScroll = window.pageYOffset;
if (currentScroll > 100) {
header.style.background = ‘rgba(13, 7, 5, 0.95)’;
header.style.backdropFilter = ‘blur(20px)’;
header.style.borderBottom = ‘1px solid rgba(61, 34, 24, 0.3)’;
} else {
header.style.background = ‘transparent’;
header.style.backdropFilter = ‘none’;
header.style.borderBottom = ‘none’;
}
lastScroll = currentScroll;
});
}
// Form Validation
function initFormValidation() {
const form = document.getElementById(‘contact-form’);
if (!form) return;
form.addEventListener(‘submit’, (e) => {
e.preventDefault();
const formData = new FormData(form);
const data = Object.fromEntries(formData);
let isValid = true;
const requiredFields = [‘name’, ’email’, ‘message’];
requiredFields.forEach(field => {
const input = form.querySelector(‘[name=”‘ + field + ‘”]’);
if (!input.value.trim()) {
input.style.borderColor = ‘#ef4444’;
isValid = false;
} else {
input.style.borderColor = ”;
}
});
if (isValid) {
const btn = form.querySelector(‘button[type=”submit”]’);
const originalText = btn.innerHTML;
btn.innerHTML = ‘
Success! ‘;
btn.style.background = ‘linear-gradient(135deg, #22c55e 0%, #16a34a 100%)’;
setTimeout(() => {
btn.innerHTML = originalText;
btn.style.background = ”;
form.reset();
}, 3000);
}
});
form.querySelectorAll(‘input, textarea, select’).forEach(input => {
input.addEventListener(‘input’, () => {
input.style.borderColor = ”;
});
});
}