1:root {
2 color-scheme: dark;
3 --bg: #0a0f1c;
4 --panel: #101827;
5 --panel-2: #151f32;
6 --text: #e5edf8;
7 --muted: #9fb0c8;
8 --accent: #7dd3fc;
9 --accent-2: #a78bfa;
10 --danger: #fb7185;
11 --ring: rgba(125, 211, 252, 0.45);
12 font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
13}
14
15* { box-sizing: border-box; }
16
17body {
18 margin: 0;
19 min-height: 100vh;
20 background:
21 radial-gradient(circle at top left, rgba(125, 211, 252, 0.18), transparent 34rem),
22 radial-gradient(circle at bottom right, rgba(167, 139, 250, 0.15), transparent 30rem),
23 var(--bg);
24 color: var(--text);
25}
26
27.app {
28 width: min(980px, calc(100% - 2rem));
29 margin: 0 auto;
30 padding: 3rem 0;
31}
32
33header { margin-bottom: 1.5rem; }
34
35.eyebrow {
36 color: var(--accent);
37 font-size: 0.78rem;
38 font-weight: 800;
39 letter-spacing: 0.16em;
40 margin: 0 0 0.5rem;
41 text-transform: uppercase;
42}
43
44h1, h2 { margin: 0; }
45h1 { font-size: clamp(2.2rem, 8vw, 4.5rem); line-height: 0.95; }
46h2 { font-size: 1.1rem; }
47.lede { color: var(--muted); max-width: 42rem; }
48
49.panel {
50 background: linear-gradient(180deg, rgba(255,255,255,0.04), transparent), var(--panel);
51 border: 1px solid rgba(255,255,255,0.09);
52 border-radius: 24px;
53 box-shadow: 0 24px 80px rgba(0,0,0,0.35);
54 padding: 1.25rem;
55 margin-top: 1rem;
56}
57
58.field {
59 display: grid;
60 gap: 0.45rem;
61 min-width: 0;
62}
63
64.field span {
65 color: var(--muted);
66 font-size: 0.85rem;
67 font-weight: 700;
68}
69
70input, select, button {
71 border: 1px solid rgba(255,255,255,0.12);
72 border-radius: 14px;
73 background: var(--panel-2);
74 color: var(--text);
75 font: inherit;
76}
77
78input, select {
79 min-height: 3.25rem;
80 padding: 0 0.9rem;
81 width: 100%;
82}
83
84input {
85 font-size: 1.35rem;
86 font-variant-numeric: tabular-nums;
87}
88
89button {
90 cursor: pointer;
91 font-weight: 800;
92 min-height: 2.8rem;
93 padding: 0 1rem;
94}
95
96button:hover, input:hover, select:hover { border-color: rgba(125, 211, 252, 0.5); }
97button:focus-visible, input:focus-visible, select:focus-visible {
98 border-color: var(--accent);
99 box-shadow: 0 0 0 4px var(--ring);
100 outline: none;
101}
102
103.converter-grid {
104 align-items: end;
105 display: grid;
106 gap: 1rem;
107 grid-template-columns: minmax(0, 1fr) minmax(11rem, 0.8fr) auto minmax(0, 1fr) minmax(11rem, 0.8fr);
108 margin: 1rem 0;
109}
110
111.swap {
112 align-self: end;
113 background: linear-gradient(135deg, var(--accent), var(--accent-2));
114 color: #08111f;
115 font-size: 1.7rem;
116 height: 3.25rem;
117 min-width: 3.25rem;
118 padding: 0;
119}
120
121.precision { max-width: 14rem; }
122.status { color: var(--accent); font-weight: 700; min-height: 1.5rem; }
123.shortcuts { color: var(--muted); font-size: 0.9rem; margin-bottom: 0; }
124
125.recent-head {
126 align-items: center;
127 display: flex;
128 justify-content: space-between;
129 gap: 1rem;
130}
131
132#clearRecent { color: var(--danger); }
133.recent { display: grid; gap: 0.55rem; margin: 1rem 0 0; padding-left: 1.4rem; }
134.recent li::marker { color: var(--muted); }
135.recent .empty { color: var(--muted); }
136.recent button {
137 background: rgba(255,255,255,0.04);
138 color: var(--text);
139 min-height: 2.4rem;
140 text-align: left;
141 width: 100%;
142}
143
144@media (max-width: 820px) {
145 .converter-grid { grid-template-columns: 1fr; }
146 .swap { justify-self: stretch; }
147}
148
Discussion
No comments yet. Start the discussion. Recorded by @patrick-toulme.