Fluids and magnetism

This commit is contained in:
Codex
2026-03-07 21:46:23 +00:00
parent 067d615b53
commit f1afaa6d3a
4 changed files with 113 additions and 42 deletions

View File

@@ -328,9 +328,11 @@ a:hover {
.palette-dots {
display: flex;
gap: 0.25rem;
overflow: hidden;
max-width: 38px;
transition: max-width 0.2s ease, gap 0.2s ease;
width: 38px;
overflow-x: hidden;
overflow-y: visible;
flex: 0 0 auto;
transition: width 0.2s ease, gap 0.2s ease;
}
.palette-dot {
width: 30px;
@@ -370,7 +372,7 @@ a:hover {
}
.floating-palette-controls:hover .palette-dots,
.floating-palette-controls:focus-within .palette-dots {
max-width: 360px;
width: 360px;
gap: 0.25rem;
}
.floating-palette-controls:hover .palette-dot:not(.active),

View File

@@ -21,10 +21,12 @@ export const categories: Record<string, { label: string; icon: string }> = {
weight: { label: 'Weight / Mass', icon: '⚖️' },
temperature: { label: 'Temperature', icon: '🌡️' },
volume: { label: 'Volume', icon: '🧪' },
fluids: { label: 'Fluids', icon: '💧' },
area: { label: 'Area', icon: '📐' },
speed: { label: 'Speed / Velocity', icon: '💨' },
pressure: { label: 'Pressure', icon: '🔽' },
energy: { label: 'Energy', icon: '⚡' },
currency: { label: 'Currency', icon: '💱' },
magnetism: { label: 'Magnetism', icon: '🧲' },
power: { label: 'Power', icon: '🔌' },
data: { label: 'Data Storage', icon: '💾' },
@@ -303,7 +305,7 @@ export const calculators: CalculatorDef[] = [
{"slug": "fahrenheit-to-celsius", "name": "Fahrenheit to Celsius", "category": "temperature", "type": "standard", "labels": {"in1": "Fahrenheit", "in2": "Celsius"}, "factor": 0.5555555555555556, "offset": -17.778, "hidden": true},
{"slug": "feet-per-second-to-meters-per-second", "name": "Feet per Second to Meters per Second", "category": "length", "type": "standard", "labels": {"in1": "Feet per Second", "in2": "Meters per Second"}, "factor": 0.3048, "hidden": true},
{"slug": "fluid-ounces-to-milliliters", "name": "Fluid Ounces to Milliliters", "category": "weight", "type": "standard", "labels": {"in1": "Fluid Ounces", "in2": "Milliliters"}, "factor": 29.5735296},
{"slug": "gallons-per-minute-to-liters-per-second", "name": "Gallons per Minute to Liters per Second", "category": "volume", "type": "standard", "labels": {"in1": "Gallons per Minute", "in2": "Liters per Second"}, "factor": 0.0630901964, "hidden": true},
{"slug": "gallons-per-minute-to-liters-per-second", "name": "Gallons per Minute to Liters per Second", "category": "fluids", "type": "standard", "labels": {"in1": "Gallons per Minute", "in2": "Liters per Second"}, "factor": 0.0630901964, "hidden": true},
{"slug": "grains-to-grams", "name": "Grains to Grams", "category": "weight", "type": "standard", "labels": {"in1": "Grains", "in2": "Grams"}, "factor": 0.06479891, "hidden": true},
{"slug": "grams-to-milligrams", "name": "Grams to Milligrams", "category": "weight", "type": "standard", "labels": {"in1": "Grams", "in2": "Milligrams"}, "factor": 1000.0},
{"slug": "grams-to-ounces", "name": "Grams to Ounces", "category": "weight", "type": "standard", "labels": {"in1": "Grams", "in2": "Ounces"}, "factor": 0.0352739619, "hidden": true},
@@ -519,7 +521,7 @@ export const calculators: CalculatorDef[] = [
{"slug": "knots-to-miles-per-hour", "name": "Knots to Miles per hour", "category": "length", "type": "standard", "labels": {"in1": "Knots", "in2": "Miles per hour"}, "factor": 1.15077945},
{"slug": "light-years-to-astronomical-units", "name": "Light years to Astronomical units", "category": "light", "type": "standard", "labels": {"in1": "Light years", "in2": "Astronomical units"}, "factor": 63241.077},
{"slug": "light-years-to-parsecs", "name": "Light years to Parsecs", "category": "light", "type": "standard", "labels": {"in1": "Light years", "in2": "Parsecs"}, "factor": 0.306601394, "hidden": true},
{"slug": "liters-per-second-to-gallons-per-minute", "name": "Liters per second to Gallons per minute", "category": "volume", "type": "standard", "labels": {"in1": "Liters per second", "in2": "Gallons per minute"}, "factor": 15.8503231},
{"slug": "liters-per-second-to-gallons-per-minute", "name": "Liters per second to Gallons per minute", "category": "fluids", "type": "standard", "labels": {"in1": "Liters per second", "in2": "Gallons per minute"}, "factor": 15.8503231},
{"slug": "parsecs-to-astronomical-units", "name": "Parsecs to Astronomical Units", "category": "other", "type": "standard", "teaser": "Translate parsec distances into astronomical units.", "labels": {"in1": "Parsecs", "in2": "Astronomical Units"}, "factor": 206265.0},
{"slug": "parsecs-to-kilometers", "name": "Parsecs to Kilometers", "category": "length", "type": "standard", "teaser": "Turn parsecs into kilometers for cosmic scales.", "labels": {"in1": "Parsecs", "in2": "Kilometers"}, "factor": 30856775814913.7},
{"slug": "parsecs-to-light-years", "name": "Parsecs to Light Years", "category": "light", "type": "standard", "teaser": "Express parsecs as light years.", "labels": {"in1": "Parsecs", "in2": "Light Years"}, "factor": 3.261563777},
@@ -527,10 +529,10 @@ export const calculators: CalculatorDef[] = [
{"slug": "liters-to-gallons", "name": "Liters to Gallons", "category": "volume", "type": "standard", "labels": {"in1": "Liters", "in2": "Gallons"}, "factor": 0.264172052, "hidden": true},
{"slug": "liters-to-pints", "name": "Liters to Pints", "category": "volume", "type": "standard", "labels": {"in1": "Liters", "in2": "Pints"}, "factor": 2.11337642},
{"slug": "liters-to-quarts", "name": "Liters to Quarts", "category": "volume", "type": "standard", "labels": {"in1": "Liters", "in2": "Quarts"}, "factor": 1.05668821},
{"slug": "liters-per-100-km-to-kilometers-per-liter", "name": "Liters per 100 km to Kilometers per liter", "category": "length", "type": "standard", "teaser": "Turn consumption from L/100 km into km per liter.", "labels": {"in1": "Liters per 100 km", "in2": "Kilometers per liter"}},
{"slug": "liters-per-100-km-to-miles-per-gallon", "name": "Liters per 100 km to Miles per gallon", "category": "length", "type": "inverse", "teaser": "Convert L/100 km into MPG.", "labels": {"in1": "Liters per 100 km", "in2": "Miles per gallon"}},
{"slug": "liters-per-minute-to-gallons-per-minute", "name": "Liters per minute to Gallons per minute", "category": "volume", "type": "standard", "labels": {"in1": "Liters per minute", "in2": "Gallons per minute"}, "factor": 0.264172052, "hidden": true},
{"slug": "liters-per-second-to-cms", "name": "Liters per second to CMS", "category": "volume", "type": "standard", "teaser": "Convert liters per second into cubic meters per second.", "labels": {"in1": "Liters per second", "in2": "CMS"}, "factor": 0.001},
{"slug": "liters-per-100-km-to-kilometers-per-liter", "name": "Liters per 100 km to Kilometers per liter", "category": "fluids", "type": "standard", "teaser": "Turn consumption from L/100 km into km per liter.", "labels": {"in1": "Liters per 100 km", "in2": "Kilometers per liter"}},
{"slug": "liters-per-100-km-to-miles-per-gallon", "name": "Liters per 100 km to Miles per gallon", "category": "fluids", "type": "inverse", "teaser": "Convert L/100 km into MPG.", "labels": {"in1": "Liters per 100 km", "in2": "Miles per gallon"}},
{"slug": "liters-per-minute-to-gallons-per-minute", "name": "Liters per minute to Gallons per minute", "category": "fluids", "type": "standard", "labels": {"in1": "Liters per minute", "in2": "Gallons per minute"}, "factor": 0.264172052, "hidden": true},
{"slug": "liters-per-second-to-cms", "name": "Liters per second to CMS", "category": "fluids", "type": "standard", "teaser": "Convert liters per second into cubic meters per second.", "labels": {"in1": "Liters per second", "in2": "CMS"}, "factor": 0.001},
{"slug": "liters-to-cubic-inches", "name": "Liters to Cubic inches", "category": "length", "type": "standard", "teaser": "Express liters as cubic inches.", "labels": {"in1": "Liters", "in2": "Cubic inches"}, "factor": 61.0237441},
{"slug": "liters-to-cubic-meters", "name": "Liters to Cubic Meters", "category": "length", "type": "standard", "teaser": "Express liters as cubic meters.", "labels": {"in1": "Liters", "in2": "Cubic Meters"}, "factor": 0.001, "hidden": true},
{"slug": "liters-to-fluid-ounces", "name": "Liters to Fluid Ounces", "category": "weight", "type": "standard", "teaser": "Express liters as US fluid ounces.", "labels": {"in1": "Liters", "in2": "Fluid Ounces"}, "factor": 33.8140227},
@@ -631,7 +633,7 @@ export const calculators: CalculatorDef[] = [
{"slug": "abvolts-to-watts", "name": "Abvolts to Watts", "category": "power", "type": "3col", "teaser": "Convert abvolts into watts when current is included.", "labels": {"in1": "Abvolts", "in2": "Watts", "in3": "Result"}},
{"slug": "siemens-to-ohms", "name": "Siemens to ohms", "category": "electrical", "type": "inverse", "labels": {"in1": "Siemens", "in2": "ohms"}, "hidden": true},
{"slug": "ohms-to-siemens", "name": "Ohms to siemens", "category": "electrical", "type": "inverse", "labels": {"in1": "Ohms", "in2": "siemens"}},
{"slug": "miles-per-gallon-to-liters-per-100-km", "name": "Miles per gallon to liters per 100 km", "category": "length", "type": "inverse", "labels": {"in1": "Miles per gallon", "in2": "liters per 100 km"}, "hidden": true},
{"slug": "miles-per-gallon-to-liters-per-100-km", "name": "Miles per gallon to liters per 100 km", "category": "fluids", "type": "inverse", "labels": {"in1": "Miles per gallon", "in2": "liters per 100 km"}, "hidden": true},
{"slug": "lux-to-lumens", "name": "Lux to lumens", "category": "light", "type": "3col-mul", "labels": {"in1": "Lux", "in2": "lumens", "in3": "Area (sq m)"}, "hidden": true},
{"slug": "lumens-to-lux", "name": "Lumens to lux", "category": "light", "type": "3col", "labels": {"in1": "Lumens", "in2": "lux", "in3": "Area (sq m)"}},
{"slug": "grams-to-moles", "name": "Grams to moles", "category": "weight", "type": "3col", "labels": {"in1": "Grams", "in2": "moles", "in3": "Molar Mass"}},
@@ -907,13 +909,13 @@ export const calculators: CalculatorDef[] = [
{"slug": "pints-to-cups", "name": "Pints to Cups", "category": "volume", "type": "standard", "teaser": "Convert pints into cups for cooking measures.", "labels": {"in1": "Pints", "in2": "Cups"}, "factor": 2.0},
{"slug": "pints-to-gallons", "name": "Pints to Gallons", "category": "volume", "type": "standard", "teaser": "Convert pints into gallons for volume tracking.", "labels": {"in1": "Pints", "in2": "Gallons"}, "factor": 0.125, "hidden": true},
{"slug": "pints-to-quarts", "name": "Pints to Quarts", "category": "volume", "type": "standard", "teaser": "Convert pints into quarts for canning ratios.", "labels": {"in1": "Pints", "in2": "Quarts"}, "factor": 0.5, "hidden": true},
{"slug": "percent-to-ppm", "name": "Percent to PPM", "category": "other", "type": "standard", "labels": {"in1": "Percent", "in2": "PPM"}, "factor": 10000.0},
{"slug": "percent-to-ppm", "name": "Percent to PPM", "category": "fluids", "type": "standard", "labels": {"in1": "Percent", "in2": "PPM"}, "factor": 10000.0},
{"slug": "percent-abv-to-proof", "name": "Percent ABV to Proof", "category": "other", "type": "standard", "teaser": "Convert alcohol by volume into US proof values (Proof = 2 \u00d7 ABV).", "labels": {"in1": "Percent ABV", "in2": "Proof"}, "factor": 2.0},
{"slug": "proof-to-percent-abv", "name": "Proof to Percent ABV", "category": "other", "type": "standard", "teaser": "Convert US proof back into ABV (ABV = Proof / 2).", "labels": {"in1": "Proof", "in2": "Percent ABV"}, "factor": 0.5, "hidden": true},
{"slug": "ppb-to-ppm", "name": "PPB to PPM", "category": "other", "type": "standard", "teaser": "Convert parts per billion into ppm.", "labels": {"in1": "PPB", "in2": "PPM"}, "factor": 0.001, "hidden": true},
{"slug": "ppm-to-mg-per-liter", "name": "PPM to mg/L", "category": "other", "type": "standard", "teaser": "For dilute aqueous solutions, treat ppm as mg per liter.", "labels": {"in1": "PPM", "in2": "mg/L"}},
{"slug": "ppm-to-percent", "name": "PPM to Percent", "category": "other", "type": "standard", "teaser": "Convert ppm values into percent by mass.", "labels": {"in1": "PPM", "in2": "Percent"}, "factor": 0.0001, "hidden": true},
{"slug": "ppm-to-ppb", "name": "PPM to PPB", "category": "other", "type": "standard", "teaser": "Convert parts per million into parts per billion.", "labels": {"in1": "PPM", "in2": "PPB"}, "factor": 1000.0},
{"slug": "ppb-to-ppm", "name": "PPB to PPM", "category": "fluids", "type": "standard", "teaser": "Convert parts per billion into ppm.", "labels": {"in1": "PPB", "in2": "PPM"}, "factor": 0.001, "hidden": true},
{"slug": "ppm-to-mg-per-liter", "name": "PPM to mg/L", "category": "fluids", "type": "standard", "teaser": "For dilute aqueous solutions, treat ppm as mg per liter.", "labels": {"in1": "PPM", "in2": "mg/L"}},
{"slug": "ppm-to-percent", "name": "PPM to Percent", "category": "fluids", "type": "standard", "teaser": "Convert ppm values into percent by mass.", "labels": {"in1": "PPM", "in2": "Percent"}, "factor": 0.0001, "hidden": true},
{"slug": "ppm-to-ppb", "name": "PPM to PPB", "category": "fluids", "type": "standard", "teaser": "Convert parts per million into parts per billion.", "labels": {"in1": "PPM", "in2": "PPB"}, "factor": 1000.0},
{"slug": "planck-mass-to-kilograms", "name": "Planck mass to Kilograms", "category": "weight", "type": "standard", "teaser": "Convert the Planck mass into SI kilograms.", "labels": {"in1": "Planck mass", "in2": "Kilograms"}, "factor": 2.176434e-08},
{"slug": "planck-time-to-seconds", "name": "Planck time to Seconds", "category": "time", "type": "standard", "teaser": "Express Planck time in seconds.", "labels": {"in1": "Planck time", "in2": "Seconds"}, "factor": 5.391247e-44},
{"slug": "points-compass-to-degrees", "name": "Points (compass) to Degrees", "category": "angle", "type": "standard", "teaser": "Convert compass points into degrees.", "labels": {"in1": "Points (compass)", "in2": "Degrees"}, "factor": 11.25},
@@ -1012,8 +1014,8 @@ export const calculators: CalculatorDef[] = [
{"slug": "furlongs-per-fortnight-to-meters-per-second", "name": "Furlongs per fortnight to m/s", "category": "speed", "type": "standard", "teaser": "Traveling at one furlong per fortnight, what speed in meters per second is that?", "labels": {"in1": "Furlongs per fortnight", "in2": "m/s"}, "factor": 1.336e-05},
{"slug": "furlongs-to-meters", "name": "Furlongs to Meters", "category": "length", "type": "standard", "teaser": "A race distance of two furlongs equals how many meters?", "labels": {"in1": "Furlongs", "in2": "Meters"}, "factor": 201.168},
{"slug": "furlongs-to-miles", "name": "Furlongs to Miles", "category": "length", "type": "standard", "teaser": "A course covers eight furlongs; how far is that in miles?", "labels": {"in1": "Furlongs", "in2": "Miles"}, "factor": 0.125, "hidden": true},
{"slug": "gallons-per-minute-to-cubic-feet-per-second", "name": "Gallons per minute to CFS", "category": "volume", "type": "standard", "teaser": "A pump pushes 200 gpm; what is that flow rate in cubic feet per second?", "labels": {"in1": "Gallons per minute", "in2": "CFS"}, "factor": 0.00222801},
{"slug": "gallons-per-minute-to-liters-per-minute", "name": "Gallons per minute to Liters per minute", "category": "volume", "type": "standard", "teaser": "A faucet flows at three gpm; what is that in liters per minute?", "labels": {"in1": "Gallons per minute", "in2": "Liters per minute"}, "factor": 3.78541},
{"slug": "gallons-per-minute-to-cubic-feet-per-second", "name": "Gallons per minute to CFS", "category": "fluids", "type": "standard", "teaser": "A pump pushes 200 gpm; what is that flow rate in cubic feet per second?", "labels": {"in1": "Gallons per minute", "in2": "CFS"}, "factor": 0.00222801},
{"slug": "gallons-per-minute-to-liters-per-minute", "name": "Gallons per minute to Liters per minute", "category": "fluids", "type": "standard", "teaser": "A faucet flows at three gpm; what is that in liters per minute?", "labels": {"in1": "Gallons per minute", "in2": "Liters per minute"}, "factor": 3.78541},
{"slug": "gallons-to-barrel-us-oil", "name": "Gallons to Barrel (US oil)", "category": "volume", "type": "standard", "teaser": "A tanker carries 840 gallons; how many US oil barrels is that?", "labels": {"in1": "Gallons", "in2": "Barrel (US oil)"}, "factor": 0.0238095238},
{"slug": "gallons-to-cubic-feet", "name": "Gallons to Cubic Feet", "category": "length", "type": "standard", "teaser": "A tank holds fifty gallons; how many cubic feet does that represent?", "labels": {"in1": "Gallons", "in2": "Cubic Feet"}, "factor": 0.133681, "hidden": true},
{"slug": "gallons-to-cubic-meters", "name": "Gallons to Cubic Meters", "category": "length", "type": "standard", "teaser": "A reservoir stores 1,200 gallons; what is the cubic meter value?", "labels": {"in1": "Gallons", "in2": "Cubic Meters"}, "factor": 0.00378541},
@@ -1035,8 +1037,8 @@ export const calculators: CalculatorDef[] = [
{"slug": "gradians-to-degrees", "name": "Gradians to Degrees", "category": "angle", "type": "standard", "teaser": "A surveyor logs 100 gradians; what is that angle in degrees?", "labels": {"in1": "Gradians", "in2": "Degrees"}, "factor": 0.9},
{"slug": "gradians-to-radians", "name": "Gradians to Radians", "category": "angle", "type": "standard", "teaser": "A control dial sweeps 200 gradians; what is that rotation in radians?", "labels": {"in1": "Gradians", "in2": "Radians"}, "factor": 0.01570796, "hidden": true},
{"slug": "grains-to-ounces", "name": "Grains to Ounces", "category": "weight", "type": "standard", "teaser": "A jewelry batch weighs 100 grains; how many ounces is that?", "labels": {"in1": "Grains", "in2": "Ounces"}, "factor": 0.002285714, "hidden": true},
{"slug": "grams-per-cubic-centimeter-to-kilograms-per-liter", "name": "Grams per cubic centimeter to Kilograms per liter", "category": "length", "type": "standard", "teaser": "A fluid density of 1 g/cm\u00b3 equals how many kg/L?", "labels": {"in1": "Grams per cubic centimeter", "in2": "Kilograms per liter"}},
{"slug": "grams-per-milliliter-to-kilograms-per-cubic-meter", "name": "Grams per milliliter to Kilograms per cubic meter", "category": "length", "type": "standard", "teaser": "A solution at 1.2 g/mL corresponds to how many kg/m\u00b3?", "labels": {"in1": "Grams per milliliter", "in2": "Kilograms per cubic meter"}, "factor": 1000.0},
{"slug": "grams-per-cubic-centimeter-to-kilograms-per-liter", "name": "Grams per cubic centimeter to Kilograms per liter", "category": "fluids", "type": "standard", "teaser": "A fluid density of 1 g/cm\u00b3 equals how many kg/L?", "labels": {"in1": "Grams per cubic centimeter", "in2": "Kilograms per liter"}},
{"slug": "grams-per-milliliter-to-kilograms-per-cubic-meter", "name": "Grams per milliliter to Kilograms per cubic meter", "category": "fluids", "type": "standard", "teaser": "A solution at 1.2 g/mL corresponds to how many kg/m\u00b3?", "labels": {"in1": "Grams per milliliter", "in2": "Kilograms per cubic meter"}, "factor": 1000.0},
{"slug": "grams-to-drams", "name": "Grams to Drams", "category": "weight", "type": "standard", "teaser": "A tea blend calls for 2 grams; how many drams should you measure?", "labels": {"in1": "Grams", "in2": "Drams"}, "factor": 0.564383},
{"slug": "grams-to-kilograms", "name": "Grams to Kilograms", "category": "weight", "type": "standard", "teaser": "A parcel weighs 3,000 grams; how many kilograms is that weight?", "labels": {"in1": "Grams", "in2": "Kilograms"}, "factor": 0.001},
{"slug": "grams-to-momme", "name": "Grams to Momme", "category": "weight", "type": "standard", "teaser": "A silk roll weighs 20 grams; how many momme does that equal?", "labels": {"in1": "Grams", "in2": "Momme"}, "factor": 0.2666667, "hidden": true},
@@ -1186,14 +1188,14 @@ export const calculators: CalculatorDef[] = [
{"slug": "lamberts-to-phot", "name": "Lamberts to Phot", "category": "other", "type": "standard", "teaser": "Flip lamberts back into phots.", "labels": {"in1": "Lamberts", "in2": "Phot"}},
{"slug": "phot-to-foot-lamberts", "name": "Phot to Foot-lamberts", "category": "other", "type": "standard", "teaser": "One phot (10,000 lux) equals about 929 foot-lamberts.", "labels": {"in1": "Phot", "in2": "Foot-lamberts"}, "factor": 929.03},
{"slug": "foot-lamberts-to-phot", "name": "Foot-lamberts to Phot", "category": "other", "type": "standard", "teaser": "Express foot-lamberts as phots (1 ft-L \u2248 0.0010764 phot).", "labels": {"in1": "Foot-lamberts", "in2": "Phot"}, "factor": 0.00107639, "hidden": true},
{"slug": "lumens-to-lux-per-square-meter", "name": "Lumens to Lux per square meter", "category": "area", "type": "standard", "teaser": "Spread lumens over 1 m\u00b2 to get lux.", "labels": {"in1": "Lumens", "in2": "Lux per square meter"}},
{"slug": "lux-to-lumens-per-square-meter", "name": "Lux to Lumens per square meter", "category": "area", "type": "standard", "teaser": "Treat lux as lumens on each square meter.", "labels": {"in1": "Lux", "in2": "Lumens per square meter"}},
{"slug": "lumens-to-lux-per-square-meter", "name": "Lumens to Lux per square meter", "category": "fluids", "type": "standard", "teaser": "Spread lumens over 1 m\u00b2 to get lux.", "labels": {"in1": "Lumens", "in2": "Lux per square meter"}},
{"slug": "lux-to-lumens-per-square-meter", "name": "Lux to Lumens per square meter", "category": "fluids", "type": "standard", "teaser": "Treat lux as lumens on each square meter.", "labels": {"in1": "Lux", "in2": "Lumens per square meter"}},
{"slug": "foot-candles-to-phot", "name": "Foot-candles to Phot", "category": "other", "type": "standard", "teaser": "Convert foot-candles into phots via the 10,000 lux anchor.", "labels": {"in1": "Foot-candles", "in2": "Phot"}, "factor": 0.00107639, "hidden": true},
{"slug": "phot-to-foot-candles", "name": "Phot to Foot-candles", "category": "other", "type": "standard", "teaser": "Express phots as foot-candles for practical light meter use.", "labels": {"in1": "Phot", "in2": "Foot-candles"}, "factor": 929.03},
{"slug": "lumens-to-nits-per-square-meter", "name": "Lumens to Nits per square meter", "category": "area", "type": "standard", "teaser": "A lumen/m\u00b2 (lux) equals about 0.31831 nits under Lambertian lighting.", "labels": {"in1": "Lumens", "in2": "Nits per square meter"}, "factor": 0.318309886},
{"slug": "nits-to-lumens-per-square-meter", "name": "Nits to Lumens per square meter", "category": "area", "type": "standard", "teaser": "Back-convert nits into lumens/m\u00b2 using \u03c0.", "labels": {"in1": "Nits", "in2": "Lumens per square meter"}, "factor": 3.141592654},
{"slug": "lumens-to-foot-lamberts-per-square-meter", "name": "Lumens to Foot-lamberts per square meter", "category": "area", "type": "standard", "teaser": "One lux equals 0.092903 foot-lamberts.", "labels": {"in1": "Lumens", "in2": "Foot-lamberts per square meter"}, "factor": 0.09290304},
{"slug": "foot-lamberts-to-lumens-per-square-meter", "name": "Foot-lamberts to Lumens per square meter", "category": "area", "type": "standard", "teaser": "Translate foot-lamberts into lux for metric flux (multiply by 10.7639).", "labels": {"in1": "Foot-lamberts", "in2": "Lumens per square meter"}, "factor": 10.7639},
{"slug": "lumens-to-nits-per-square-meter", "name": "Lumens to Nits per square meter", "category": "fluids", "type": "standard", "teaser": "A lumen/m\u00b2 (lux) equals about 0.31831 nits under Lambertian lighting.", "labels": {"in1": "Lumens", "in2": "Nits per square meter"}, "factor": 0.318309886},
{"slug": "nits-to-lumens-per-square-meter", "name": "Nits to Lumens per square meter", "category": "fluids", "type": "standard", "teaser": "Back-convert nits into lumens/m\u00b2 using \u03c0.", "labels": {"in1": "Nits", "in2": "Lumens per square meter"}, "factor": 3.141592654},
{"slug": "lumens-to-foot-lamberts-per-square-meter", "name": "Lumens to Foot-lamberts per square meter", "category": "fluids", "type": "standard", "teaser": "One lux equals 0.092903 foot-lamberts.", "labels": {"in1": "Lumens", "in2": "Foot-lamberts per square meter"}, "factor": 0.09290304},
{"slug": "foot-lamberts-to-lumens-per-square-meter", "name": "Foot-lamberts to Lumens per square meter", "category": "fluids", "type": "standard", "teaser": "Translate foot-lamberts into lux for metric flux (multiply by 10.7639).", "labels": {"in1": "Foot-lamberts", "in2": "Lumens per square meter"}, "factor": 10.7639},
{"slug": "stilbs-to-nits", "name": "Stilbs to Nits", "category": "other", "type": "standard", "teaser": "A stilb equals 10,000 nits for high-luminance scopes.", "labels": {"in1": "Stilbs", "in2": "Nits"}, "factor": 10000.0},
{"slug": "nits-to-stilbs", "name": "Nits to Stilbs", "category": "other", "type": "standard", "teaser": "Convert nits into the CGS stilb scale (1 nit = 0.0001 stilb).", "labels": {"in1": "Nits", "in2": "Stilbs"}, "factor": 0.0001, "hidden": true},
{"slug": "stilbs-to-lux", "name": "Stilbs to Lux", "category": "light", "type": "standard", "teaser": "Multiply stilbs by \u03c0 to get the matching lux value (\u2248 31,415.93 lux).", "labels": {"in1": "Stilbs", "in2": "Lux"}, "factor": 31415.92654},
@@ -1206,7 +1208,7 @@ export const calculators: CalculatorDef[] = [
{"slug": "metric-horsepower-to-watts", "name": "Metric Horsepower (PS) to Watts", "category": "power", "type": "standard", "teaser": "Convert metric horsepower into watts for European ratings.", "labels": {"in1": "Metric Horsepower (PS)", "in2": "Watts"}, "factor": 735.49875},
{"slug": "metric-tons-to-kilograms", "name": "Metric Tons to Kilograms", "category": "weight", "type": "standard", "teaser": "Convert metric tons into kilograms for bulk weights.", "labels": {"in1": "Metric Tons", "in2": "Kilograms"}, "factor": 1000.0},
{"slug": "metric-tons-to-pounds", "name": "Metric Tons to Pounds", "category": "weight", "type": "standard", "teaser": "Convert metric tons into pounds.", "labels": {"in1": "Metric Tons", "in2": "Pounds"}, "factor": 2204.62262},
{"slug": "mg-per-liter-to-ppm", "name": "mg/L to PPM", "category": "other", "type": "standard", "teaser": "Treat milligrams per liter as parts per million for dilute solutions.", "labels": {"in1": "mg/L", "in2": "PPM"}},
{"slug": "mg-per-liter-to-ppm", "name": "mg/L to PPM", "category": "fluids", "type": "standard", "teaser": "Treat milligrams per liter as parts per million for dilute solutions.", "labels": {"in1": "mg/L", "in2": "PPM"}},
{"slug": "microfarads-to-farads", "name": "Microfarads to Farads", "category": "radiation", "type": "standard", "teaser": "Convert capacitance from microfarads to farads.", "labels": {"in1": "Microfarads", "in2": "Farads"}, "factor": 1e-06, "hidden": true},
{"slug": "microfarads-to-picofarads", "name": "Microfarads to Picofarads", "category": "radiation", "type": "standard", "teaser": "Convert microfarads to picofarads.", "labels": {"in1": "Microfarads", "in2": "Picofarads"}, "factor": 1000000.0},
{"slug": "microhenries-to-millihenries", "name": "Microhenries to Millihenries", "category": "angle", "type": "standard", "teaser": "Convert inductance from microhenries to millihenries.", "labels": {"in1": "Microhenries", "in2": "Millihenries"}, "factor": 0.001, "hidden": true},
@@ -1481,8 +1483,8 @@ export const calculators: CalculatorDef[] = [
{"slug": "volumetric-heat-capacity-kj-per-cubic-meter-k-to-j-per-cubic-meter-k", "name": "Volumetric heat capacity (kJ/(m\u00b3\u00b7K)) to J/(m\u00b3\u00b7K)", "category": "fluids", "type": "standard", "teaser": "Convert the kilojoule-based heat density back into joules.", "labels": {"in1": "Volumetric heat capacity (kJ/(m\u00b3\u00b7K))", "in2": "J/(m\u00b3\u00b7K)"}, "factor": 1000.0},
{"slug": "heat-flux-density-w-per-square-meter-to-w-per-square-foot", "name": "Heat flux density (W/m\u00b2) to W/ft\u00b2", "category": "fluids", "type": "standard", "teaser": "Express surface heat flow in imperial area units.", "labels": {"in1": "Heat flux density (W/m\u00b2)", "in2": "W/ft\u00b2"}, "factor": 0.092903},
{"slug": "heat-flux-density-w-per-square-foot-to-w-per-square-meter", "name": "Heat flux density (W/ft\u00b2) to W/m\u00b2", "category": "fluids", "type": "standard", "teaser": "Return the imperial flux back into SI.", "labels": {"in1": "Heat flux density (W/ft\u00b2)", "in2": "W/m\u00b2"}, "factor": 10.7639},
{"slug": "heat-transfer-coefficient-w-per-square-meter-k-to-w-per-square-foot-f", "name": "Heat transfer coefficient (W/(m\u00b2\u00b7K)) to W/(ft\u00b2\u00b7\u00b0F)", "category": "temperature", "type": "standard", "teaser": "Convert SI conductance into imperial units per area and degree.", "labels": {"in1": "Heat transfer coefficient (W/(m\u00b2\u00b7K))", "in2": "W/(ft\u00b2\u00b7\u00b0F)"}, "factor": 0.05144},
{"slug": "heat-transfer-coefficient-w-per-square-foot-f-to-w-per-square-meter-k", "name": "Heat transfer coefficient (W/(ft\u00b2\u00b7\u00b0F)) to W/(m\u00b2\u00b7K)", "category": "temperature", "type": "standard", "teaser": "Turn imperial film coefficients back into SI.", "labels": {"in1": "Heat transfer coefficient (W/(ft\u00b2\u00b7\u00b0F))", "in2": "W/(m\u00b2\u00b7K)"}, "factor": 19.374},
{"slug": "heat-transfer-coefficient-w-per-square-meter-k-to-w-per-square-foot-f", "name": "Heat transfer coefficient (W/(m\u00b2\u00b7K)) to W/(ft\u00b2\u00b7\u00b0F)", "category": "fluids", "type": "standard", "teaser": "Convert SI conductance into imperial units per area and degree.", "labels": {"in1": "Heat transfer coefficient (W/(m\u00b2\u00b7K))", "in2": "W/(ft\u00b2\u00b7\u00b0F)"}, "factor": 0.05144},
{"slug": "heat-transfer-coefficient-w-per-square-foot-f-to-w-per-square-meter-k", "name": "Heat transfer coefficient (W/(ft\u00b2\u00b7\u00b0F)) to W/(m\u00b2\u00b7K)", "category": "fluids", "type": "standard", "teaser": "Turn imperial film coefficients back into SI.", "labels": {"in1": "Heat transfer coefficient (W/(ft\u00b2\u00b7\u00b0F))", "in2": "W/(m\u00b2\u00b7K)"}, "factor": 19.374},
{"slug": "sievert-to-gray", "name": "Sievert to Gray", "category": "radiation", "type": "standard", "teaser": "Convert sievert exposures into energy-absorption grays for gamma/beta radiation.", "labels": {"in1": "Sievert", "in2": "Gray"}, "hidden": true},
{"slug": "smoots-to-meters", "name": "Smoots to Meters", "category": "length", "type": "standard", "teaser": "Translate historic smoot measurements into meters for consistent distances.", "labels": {"in1": "Smoots", "in2": "Meters"}, "factor": 1.7018},
{"slug": "solar-luminosities-to-watts", "name": "Solar luminosities to Watts", "category": "power", "type": "standard", "teaser": "Express a star\u2019s luminosity in watts for energy output comparisons.", "labels": {"in1": "Solar luminosities", "in2": "Watts"}, "factor": 3.828e+26},
@@ -1520,18 +1522,18 @@ export const calculators: CalculatorDef[] = [
{"slug": "millitesla-to-tesla", "name": "Millitesla to Tesla", "category": "magnetism", "type": "standard", "teaser": "Convert millitesla readings back into tesla.", "labels": {"in1": "Millitesla", "in2": "Tesla"}, "factor": 0.001, "hidden": true},
{"slug": "tesla-to-kilogauss", "name": "Tesla to Kilogauss", "category": "magnetism", "type": "standard", "teaser": "Translate tesla directly to kilogauss for chart comparisons.", "labels": {"in1": "Tesla", "in2": "Kilogauss"}, "factor": 10.0},
{"slug": "kilogauss-to-tesla", "name": "Kilogauss to Tesla", "category": "magnetism", "type": "standard", "teaser": "Return kilogauss values back into tesla.", "labels": {"in1": "Kilogauss", "in2": "Tesla"}, "factor": 0.1, "hidden": true},
{"slug": "cubic-meters-per-second-to-liters-per-minute", "name": "Cubic meters per second to Liters per minute", "category": "length", "type": "standard", "teaser": "Turn volumetric flow rates into convenient liters/minute values.", "labels": {"in1": "Cubic meters per second", "in2": "Liters per minute"}, "factor": 60000.0},
{"slug": "liters-per-minute-to-gallons-per-minute", "name": "Liters per minute to Gallons per minute", "category": "volume", "type": "standard", "teaser": "Express liters/min as US gallons/min for flow metering.", "labels": {"in1": "Liters per minute", "in2": "Gallons per minute"}, "factor": 0.264172052, "hidden": true},
{"slug": "kilograms-per-second-to-pounds-per-hour", "name": "Kilograms per second to Pounds per hour", "category": "weight", "type": "standard", "teaser": "Convert mass flow from the SI kilogram scale to imperial pounds per hour.", "labels": {"in1": "Kilograms per second", "in2": "Pounds per hour"}, "factor": 7936.641761},
{"slug": "pounds-per-hour-to-kilograms-per-second", "name": "Pounds per hour to Kilograms per second", "category": "weight", "type": "standard", "teaser": "Bring imperial mass flow back into the SI kilogram rate.", "labels": {"in1": "Pounds per hour", "in2": "Kilograms per second"}, "factor": 0.000126577, "hidden": true},
{"slug": "moles-per-second-to-moles-per-hour", "name": "Moles per second to Moles per hour", "category": "time", "type": "standard", "teaser": "Translate molar flow between seconds and hours.", "labels": {"in1": "Moles per second", "in2": "Moles per hour"}, "factor": 3600.0},
{"slug": "moles-per-hour-to-moles-per-second", "name": "Moles per hour to Moles per second", "category": "time", "type": "standard", "teaser": "Return molar flow rates back to per-second units.", "labels": {"in1": "Moles per hour", "in2": "Moles per second"}, "factor": 0.0002777778, "hidden": true},
{"slug": "kilograms-per-second-per-square-meter-to-grams-per-second-per-square-centimeter", "name": "Kilograms per second per square meter to Grams per second per square centimeter", "category": "area", "type": "standard", "teaser": "Express mass flux density using metric subunits.", "labels": {"in1": "Kilograms per second per square meter", "in2": "Grams per second per square centimeter"}, "factor": 0.1, "hidden": true},
{"slug": "grams-per-second-per-square-centimeter-to-kilograms-per-second-per-square-meter", "name": "Grams per second per square centimeter to Kilograms per second per square meter", "category": "area", "type": "standard", "teaser": "Convert compact mass flux into the SI-friendly base.", "labels": {"in1": "Grams per second per square centimeter", "in2": "Kilograms per second per square meter"}, "factor": 10.0},
{"slug": "mol-per-cubic-meter-to-mmol-per-liter", "name": "Mol per cubic meter to mmol per liter", "category": "length", "type": "standard", "teaser": "Translate molar concentrations across common volume units.", "labels": {"in1": "Mol per cubic meter", "in2": "mmol per liter"}, "hidden": true},
{"slug": "mmol-per-liter-to-mol-per-cubic-meter", "name": "mmol per liter to mol per cubic meter", "category": "length", "type": "standard", "teaser": "Convert molar concentration back into SI cubic meters.", "labels": {"in1": "mmol per liter", "in2": "mol per cubic meter"}},
{"slug": "percent-by-mass-to-ppm", "name": "Percent by mass to ppm", "category": "other", "type": "standard", "teaser": "Turn mass-percent concentrations into parts-per-million.", "labels": {"in1": "Percent by mass", "in2": "ppm"}, "factor": 10000.0},
{"slug": "ppm-to-percent-by-mass", "name": "ppm to Percent by mass", "category": "other", "type": "standard", "teaser": "Return ppm values to mass-percent.", "labels": {"in1": "ppm", "in2": "Percent by mass"}, "factor": 0.0001, "hidden": true},
{"slug": "cubic-meters-per-second-to-liters-per-minute", "name": "Cubic meters per second to Liters per minute", "category": "fluids", "type": "standard", "teaser": "Turn volumetric flow rates into convenient liters/minute values.", "labels": {"in1": "Cubic meters per second", "in2": "Liters per minute"}, "factor": 60000.0},
{"slug": "liters-per-minute-to-gallons-per-minute", "name": "Liters per minute to Gallons per minute", "category": "fluids", "type": "standard", "teaser": "Express liters/min as US gallons/min for flow metering.", "labels": {"in1": "Liters per minute", "in2": "Gallons per minute"}, "factor": 0.264172052, "hidden": true},
{"slug": "kilograms-per-second-to-pounds-per-hour", "name": "Kilograms per second to Pounds per hour", "category": "fluids", "type": "standard", "teaser": "Convert mass flow from the SI kilogram scale to imperial pounds per hour.", "labels": {"in1": "Kilograms per second", "in2": "Pounds per hour"}, "factor": 7936.641761},
{"slug": "pounds-per-hour-to-kilograms-per-second", "name": "Pounds per hour to Kilograms per second", "category": "fluids", "type": "standard", "teaser": "Bring imperial mass flow back into the SI kilogram rate.", "labels": {"in1": "Pounds per hour", "in2": "Kilograms per second"}, "factor": 0.000126577, "hidden": true},
{"slug": "moles-per-second-to-moles-per-hour", "name": "Moles per second to Moles per hour", "category": "fluids", "type": "standard", "teaser": "Translate molar flow between seconds and hours.", "labels": {"in1": "Moles per second", "in2": "Moles per hour"}, "factor": 3600.0},
{"slug": "moles-per-hour-to-moles-per-second", "name": "Moles per hour to Moles per second", "category": "fluids", "type": "standard", "teaser": "Return molar flow rates back to per-second units.", "labels": {"in1": "Moles per hour", "in2": "Moles per second"}, "factor": 0.0002777778, "hidden": true},
{"slug": "kilograms-per-second-per-square-meter-to-grams-per-second-per-square-centimeter", "name": "Kilograms per second per square meter to Grams per second per square centimeter", "category": "fluids", "type": "standard", "teaser": "Express mass flux density using metric subunits.", "labels": {"in1": "Kilograms per second per square meter", "in2": "Grams per second per square centimeter"}, "factor": 0.1, "hidden": true},
{"slug": "grams-per-second-per-square-centimeter-to-kilograms-per-second-per-square-meter", "name": "Grams per second per square centimeter to Kilograms per second per square meter", "category": "fluids", "type": "standard", "teaser": "Convert compact mass flux into the SI-friendly base.", "labels": {"in1": "Grams per second per square centimeter", "in2": "Kilograms per second per square meter"}, "factor": 10.0},
{"slug": "mol-per-cubic-meter-to-mmol-per-liter", "name": "Mol per cubic meter to mmol per liter", "category": "fluids", "type": "standard", "teaser": "Translate molar concentrations across common volume units.", "labels": {"in1": "Mol per cubic meter", "in2": "mmol per liter"}, "hidden": true},
{"slug": "mmol-per-liter-to-mol-per-cubic-meter", "name": "mmol per liter to mol per cubic meter", "category": "fluids", "type": "standard", "teaser": "Convert molar concentration back into SI cubic meters.", "labels": {"in1": "mmol per liter", "in2": "mol per cubic meter"}},
{"slug": "percent-by-mass-to-ppm", "name": "Percent by mass to ppm", "category": "fluids", "type": "standard", "teaser": "Turn mass-percent concentrations into parts-per-million.", "labels": {"in1": "Percent by mass", "in2": "ppm"}, "factor": 10000.0},
{"slug": "ppm-to-percent-by-mass", "name": "ppm to Percent by mass", "category": "fluids", "type": "standard", "teaser": "Return ppm values to mass-percent.", "labels": {"in1": "ppm", "in2": "Percent by mass"}, "factor": 0.0001, "hidden": true},
{"slug": "pascal-second-to-poise", "name": "Pascal-second to Poise", "category": "pressure", "type": "standard", "teaser": "Convert SI dynamic viscosity into CGS poise.", "labels": {"in1": "Pascal-second", "in2": "Poise"}, "factor": 10.0},
{"slug": "poise-to-pascal-second", "name": "Poise to Pascal-second", "category": "pressure", "type": "standard", "teaser": "Bring poise measurements back into pascal-seconds.", "labels": {"in1": "Poise", "in2": "Pascal-second"}, "factor": 0.1, "hidden": true},
{"slug": "pascal-second-to-centipoise", "name": "Pascal-second to Centipoise", "category": "pressure", "type": "standard", "teaser": "Express pascal-seconds as centipoise for lab viscosity.", "labels": {"in1": "Pascal-second", "in2": "Centipoise"}, "factor": 100.0},

View File

@@ -17,6 +17,10 @@ const domainDefinitions: Record<string, { summary: string; context: string }> =
summary: 'measures three-dimensional capacity inside containers or spaces.',
context: 'Useful for describing liquids, gases, or any amount of space you can fill.',
},
fluids: {
summary: 'captures flow rates, flux densities, and transport-related metrics.',
context: 'Reach for these units when comparing pumps, pipes, or any movement of liquids, gases, or charged particles across an area.',
},
area: {
summary: 'tracks two-dimensional surface coverage.',
context: 'Helpful when sizing plots of land, floor space, or sheets of material.',
@@ -33,6 +37,10 @@ const domainDefinitions: Record<string, { summary: string; context: string }> =
summary: 'represents the capacity to do work or release heat.',
context: 'Energy units compare calories, joules, or BTUs when tracking work, heat, or stored energy.',
},
currency: {
summary: 'records monetary values across different global currencies.',
context: 'Use these converters when comparing dollars, euros, pounds, yens, or other exchange rates for budgeting or pricing.',
},
magnetism: {
summary: 'captures magnetic intensity, flux, and field density.',
context: 'Use these units when comparing magnets, coils, or magnetic flux through areas and materials.',

View File

@@ -6,6 +6,60 @@ BASE_DIR = Path(__file__).resolve().parent
CALCLIST = BASE_DIR / 'calculators_list.md'
OUTPUT_FILE = BASE_DIR / 'hdyc-svelte/src/lib/data/calculators.ts'
FLUID_KEYWORDS = [
'flow',
'mass flux',
'volumetric',
'permeability',
'viscosity',
'kinematic',
'surface tension',
'molar',
'concentration',
'flux density',
'flow rate',
'gallon per',
'gallons per',
'liter per',
'liters per',
'cubic per',
'cubic meter per',
'cubic meters per',
'cubic foot per',
'cubic feet per',
'cubic inch per',
'cubic inches per',
'kg per',
'kilogram per',
'kilograms per',
'gram per',
'grams per',
'g per',
'lb per',
'lbs per',
'pound per',
'pounds per',
'mole per',
'moles per',
'mol per',
'mmol per',
'percent by mass',
'ppm',
'heat transfer coefficient',
'per square meter',
'per square metre',
'per square foot',
'per square inch',
'per square centimeter',
'per square centimetre',
'per cubic meter',
'per cubic metre',
'per cubic foot',
'per cubic inch'
]
CURRENCY_KEYWORDS = ['currency', 'exchange rate', 'forex']
def load_external_descriptions():
# Placeholder for future enrichment sources.
return {}
@@ -55,11 +109,14 @@ def split_conversion_name(name):
def guess_category(name):
name_l = name.lower()
if any(keyword in name_l for keyword in CURRENCY_KEYWORDS):
return 'currency'
if any(keyword in name_l for keyword in FLUID_KEYWORDS):
return 'fluids'
if any(x in name_l for x in ['acre-foot', 'acre-feet', 'acrefoot', 'acre feet']):
return 'volume'
if 'temp scale' in name_l or 'newton (temp' in name_l:
return 'temperature'
if any(x in name_l for x in ['flow', 'mass flux', 'volumetric', 'permeability', 'viscosity', 'kinematic', 'surface tension', 'molar', 'concentration', 'flux density', 'flow rate']): return 'fluids'
if any(x in name_l for x in ['force', 'torque', 'newton', 'dyne', 'foot-pound']): return 'force'
if any(x in name_l for x in ['acre', 'hectare', 'square']): return 'area'
if any(x in name_l for x in ['meter', 'inch', 'feet', 'yard', 'mile', 'cable', 'fathom', 'rod', 'chain', 'nautical', 'league']): return 'length'
@@ -306,10 +363,12 @@ export const categories: Record<string, { label: string; icon: string }> = {
weight: { label: 'Weight / Mass', icon: '⚖️' },
temperature: { label: 'Temperature', icon: '🌡️' },
volume: { label: 'Volume', icon: '🧪' },
fluids: { label: 'Fluids', icon: '💧' },
area: { label: 'Area', icon: '📐' },
speed: { label: 'Speed / Velocity', icon: '💨' },
pressure: { label: 'Pressure', icon: '🔽' },
energy: { label: 'Energy', icon: '' },
currency: { label: 'Currency', icon: '💱' },
magnetism: { label: 'Magnetism', icon: '🧲' },
power: { label: 'Power', icon: '🔌' },
data: { label: 'Data Storage', icon: '💾' },