@atom.io/template-solid-lossless-numbers 0.0.39 → 0.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oxlintrc.json +4 -0
- package/.turbo/turbo-build.log +7 -6
- package/CHANGELOG.md +17 -0
- package/README.md +4 -0
- package/_gitignore +1 -0
- package/dist/assets/index-DtvSwENK.css +1 -0
- package/dist/index.html +2 -2
- package/dprint.json +33 -0
- package/package.json +21 -7
- package/src/App.tsx +23 -17
- package/src/App.tsx.module.css +10 -10
- package/src/main.tsx +2 -1
- package/tsconfig.app.json +3 -1
- package/vite.config.ts +1 -1
- package/dist/assets/index-DMbEQKRi.css +0 -1
- package/src/jsx-intrinsic-elements.d.ts +0 -10
package/.oxlintrc.json
ADDED
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
$ vite build
|
|
2
|
-
[36mvite v8.2.
|
|
3
|
-
|
|
2
|
+
[36mvite v8.2.2 [32mbuilding client environment for production...[36m[39m
|
|
3
|
+
transforming...
|
|
4
|
+
✓ 22 modules transformed.
|
|
4
5
|
rendering chunks...
|
|
5
6
|
computing gzip size...
|
|
6
|
-
dist/index.html 0.39 kB │ gzip: 0.
|
|
7
|
-
dist/assets/index-
|
|
8
|
-
dist/assets/index-
|
|
7
|
+
dist/index.html 0.39 kB │ gzip: 0.28 kB
|
|
8
|
+
dist/assets/index-DtvSwENK.css 3.86 kB │ gzip: 1.14 kB
|
|
9
|
+
dist/assets/index-C68zAp4F.js 84.19 kB │ gzip: 24.68 kB
|
|
9
10
|
|
|
10
|
-
[32m✓ built in
|
|
11
|
+
[32m✓ built in 451ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.0.41
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 88f81c3: Use Lasertag's semantic Solid JSX declarations instead of maintaining a handwritten intrinsic-element shim.
|
|
8
|
+
- 88f81c3: Give every released template a pinned, standalone Oxlint, ESLint, TypeScript, and dprint quality baseline with zero-warning scripts and a single canonical configuration shipped at the atom.io package root.
|
|
9
|
+
- Updated dependencies [98d897b]
|
|
10
|
+
- Updated dependencies [88f81c3]
|
|
11
|
+
- atom.io@0.52.2
|
|
12
|
+
|
|
13
|
+
## 0.0.40
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [a082cfd]
|
|
18
|
+
- atom.io@0.52.1
|
|
19
|
+
|
|
3
20
|
## 0.0.39
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -23,6 +23,10 @@ npm run build
|
|
|
23
23
|
npm run preview
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
+
## Quality Checks
|
|
27
|
+
|
|
28
|
+
Run `npm run lint` before committing. It enforces ESLint, type-aware Oxlint, and TypeScript with zero warnings. Run `npm run fmt:check` in CI and `npm run fmt` to apply the pinned dprint configuration locally.
|
|
29
|
+
|
|
26
30
|
## Where To Look
|
|
27
31
|
|
|
28
32
|
- `src/App.tsx`: the atom.io state model, Solid components, and rational arithmetic UI.
|
package/_gitignore
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--bg:#f6f1e8;--bg-deep:#efe3d0;--panel:#fffcf7db;--panel-strong:#fffaf2;--ink:#172433;--muted:#5d6670;--gold:#d88d1f;--gold-soft:#f5d8a5;--mint:#bfd7c2;--line:#17243324;--shadow:0 24px 80px #3721081f;--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;color:var(--ink);background:radial-gradient(circle at top left, #d88d1f29, transparent 28%), radial-gradient(circle at right center, #1724331f, transparent 30%), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%);font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Palatino,serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:100svh}button,input,select{font:inherit}button,select,input{border:1px solid var(--line);border-radius:var(--radius-sm)}button:hover{transform:translateY(-1px);box-shadow:0 12px 28px #17243324}button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}button.secondary,button.ghost-button{color:var(--ink);background:0 0}button.secondary{border-style:dashed}button.ghost-button{padding-inline:.85rem}input,select{background:#ffffffbf;width:100%;padding:.75rem .85rem}code{font-family:SFMono-Regular,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:.9em}rationality-app._class_14ekc_1{--line:#17243324}rationality-app._class_14ekc_1,rationality-app._class_14ekc_1 *{display:flex}rationality-app._class_14ekc_1{flex-direction:column}rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset{border:none;flex-flow:column;padding:0;font-size:24px}:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>rational-numerator,:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>rational-denominator,:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>input{flex-grow:1;justify-content:center;align-items:center;height:36px;margin:0}:is(:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>rational-numerator,:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>rational-denominator,:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>input)[data-css=one]{color:#0002}:is(rationality-app._class_14ekc_1 rational-fraction,rationality-app._class_14ekc_1 fieldset)>rational-solidus{background:#000;height:2px}rationality-app._class_14ekc_1>header{justify-content:space-between;align-items:center;padding:12px}rationality-app._class_14ekc_1>header>button{justify-content:center;align-items:center}rationality-app._class_14ekc_1>main{flex-flow:column;gap:2px;padding:2px}rationality-app._class_14ekc_1>main>rational-breakdown{border:1px solid #0002;padding:2px 12px}rationality-app._class_14ekc_1>main>rational-breakdown>fraction-list{flex-grow:1}rationality-app._class_14ekc_1>main>rational-breakdown>fraction-list>rational-plus{color:#0002;align-items:center;font-size:30px}rationality-app._class_14ekc_1>main>rational-breakdown>fraction-list>infix-buttons{flex-flow:column}rationality-app._class_14ekc_1>main>rational-breakdown>rational-equals{color:#0002;align-items:center;font-size:48px}rationality-app._class_14ekc_1>main>rational-breakdown>rational-quotient{align-items:center;font-size:48px;position:relative}rationality-app._class_14ekc_1>main>rational-breakdown>rational-quotient>quotient-bits{flex-wrap:wrap;place-content:flex-start;place-items:flex-start;width:40px;position:absolute;top:0;right:0}rationality-app._class_14ekc_1>main>rational-breakdown>rational-quotient>quotient-bits>quotient-bit{background:0 0;border:1px solid #0002;flex-grow:0;flex-shrink:0;width:5px;height:5px}rationality-app._class_14ekc_1>main>rational-breakdown>rational-quotient>quotient-bits>quotient-bit[data-css=one]{background:#0002}
|
package/dist/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
content="width=device-width, initial-scale=1.0"
|
|
8
8
|
/>
|
|
9
9
|
<title>Rationality Playground</title>
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-C68zAp4F.js"></script>
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DtvSwENK.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<div id="app"></div>
|
package/dprint.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://dprint.dev/schemas/v0.json",
|
|
3
|
+
"lineWidth": 81,
|
|
4
|
+
"useTabs": true,
|
|
5
|
+
"indentWidth": 2,
|
|
6
|
+
"includes": ["**/*.{ts,tsx,js,jsx,mjs,cjs,json,jsonc,md,mdx,css}"],
|
|
7
|
+
"excludes": [
|
|
8
|
+
"**/dist/**",
|
|
9
|
+
"**/node_modules/**",
|
|
10
|
+
"**/playwright-report/**",
|
|
11
|
+
"**/test-results/**"
|
|
12
|
+
],
|
|
13
|
+
"oxc": {
|
|
14
|
+
"associations": ["**/*.{ts,tsx,js,jsx,mjs,cjs}"],
|
|
15
|
+
"semicolons": "asNeeded",
|
|
16
|
+
"trailingCommas": "all"
|
|
17
|
+
},
|
|
18
|
+
"json": {
|
|
19
|
+
"associations": ["**/*.{json,jsonc}"]
|
|
20
|
+
},
|
|
21
|
+
"markdown": {
|
|
22
|
+
"associations": ["**/*.{md,mdx}"]
|
|
23
|
+
},
|
|
24
|
+
"malva": {
|
|
25
|
+
"associations": ["**/*.css"]
|
|
26
|
+
},
|
|
27
|
+
"plugins": [
|
|
28
|
+
"./node_modules/@dprint/oxc/plugin.wasm",
|
|
29
|
+
"./node_modules/@dprint/json/plugin.wasm",
|
|
30
|
+
"./node_modules/@dprint/markdown/plugin.wasm",
|
|
31
|
+
"./node_modules/dprint-plugin-malva/plugin.wasm"
|
|
32
|
+
]
|
|
33
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atom.io/template-solid-lossless-numbers",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.41",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -12,20 +12,34 @@
|
|
|
12
12
|
},
|
|
13
13
|
"type": "module",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
15
|
+
"atom.io": "0.52.2",
|
|
16
|
+
"rationality": "0.1.1",
|
|
17
|
+
"solid-js": "1.9.15"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@
|
|
21
|
-
"
|
|
20
|
+
"@dprint/json": "0.23.0",
|
|
21
|
+
"@dprint/markdown": "0.23.2",
|
|
22
|
+
"@dprint/oxc": "0.37.0",
|
|
23
|
+
"@types/node": "26.4.0",
|
|
24
|
+
"dprint": "0.56.1",
|
|
25
|
+
"dprint-plugin-malva": "0.16.0",
|
|
26
|
+
"eslint": "10.9.1",
|
|
27
|
+
"lasertag": "0.7.0",
|
|
28
|
+
"oxlint": "1.80.0",
|
|
29
|
+
"oxlint-tsgolint": "7.0.2001",
|
|
22
30
|
"typescript": "7.0.2",
|
|
23
|
-
"vite": "8.2.
|
|
31
|
+
"vite": "8.2.2",
|
|
24
32
|
"vite-plugin-solid": "2.11.14"
|
|
25
33
|
},
|
|
26
34
|
"scripts": {
|
|
27
35
|
"dev": "vite",
|
|
28
36
|
"build": "vite build",
|
|
37
|
+
"fmt": "dprint fmt .",
|
|
38
|
+
"fmt:check": "dprint check .",
|
|
39
|
+
"lint": "npm run lint:eslint && npm run lint:oxlint && npm run lint:types",
|
|
40
|
+
"lint:eslint": "eslint --max-warnings 0 .",
|
|
41
|
+
"lint:oxlint": "oxlint --deny-warnings .",
|
|
42
|
+
"lint:types": "tsc -b",
|
|
29
43
|
"preview": "vite preview"
|
|
30
44
|
}
|
|
31
45
|
}
|
package/src/App.tsx
CHANGED
|
@@ -124,7 +124,7 @@ const combineIntoRationalTransaction = transaction<
|
|
|
124
124
|
export function App(): JSX.Element {
|
|
125
125
|
const rationals = useO(rationalListAtom)
|
|
126
126
|
return (
|
|
127
|
-
<app class={css.class}>
|
|
127
|
+
<rationality-app class={css.class}>
|
|
128
128
|
<header>
|
|
129
129
|
<h1>Rationality Playground</h1>
|
|
130
130
|
</header>
|
|
@@ -153,7 +153,7 @@ export function App(): JSX.Element {
|
|
|
153
153
|
</button>
|
|
154
154
|
</new-rational>
|
|
155
155
|
</main>
|
|
156
|
-
</app>
|
|
156
|
+
</rationality-app>
|
|
157
157
|
)
|
|
158
158
|
}
|
|
159
159
|
|
|
@@ -172,7 +172,7 @@ export function RationalBreakdown(props: { key: RationalKey }): JSX.Element {
|
|
|
172
172
|
return (
|
|
173
173
|
<>
|
|
174
174
|
<Show when={index() !== 0}>
|
|
175
|
-
<plus>+</plus>
|
|
175
|
+
<rational-plus>+</rational-plus>
|
|
176
176
|
</Show>
|
|
177
177
|
<Fraction numerator={numerator} denominator={denominator} />
|
|
178
178
|
</>
|
|
@@ -216,17 +216,21 @@ export function RationalBreakdown(props: { key: RationalKey }): JSX.Element {
|
|
|
216
216
|
<RationalCombineFields key={props.key} />
|
|
217
217
|
</fraction-list>
|
|
218
218
|
|
|
219
|
-
<equals>=</equals>
|
|
219
|
+
<rational-equals>=</rational-equals>
|
|
220
220
|
<Fraction numerator={simplified()[0]} denominator={simplified()[1]} />
|
|
221
|
-
<equals>{isFloatPrecise() ? `=` : `≈`}</equals>
|
|
222
|
-
<quotient>
|
|
221
|
+
<rational-equals>{isFloatPrecise() ? `=` : `≈`}</rational-equals>
|
|
222
|
+
<rational-quotient>
|
|
223
223
|
<quotient-bits>
|
|
224
224
|
<For each={bits()}>
|
|
225
|
-
{(bit) =>
|
|
225
|
+
{(bit) => (
|
|
226
|
+
<quotient-bit data-css={bit === `1` ? `one` : undefined} />
|
|
227
|
+
)}
|
|
226
228
|
</For>
|
|
227
229
|
</quotient-bits>
|
|
228
|
-
<number>
|
|
229
|
-
|
|
230
|
+
<rational-number>
|
|
231
|
+
{isFloatPrecise() ? float() : approximateValue()}
|
|
232
|
+
</rational-number>
|
|
233
|
+
</rational-quotient>
|
|
230
234
|
</rational-breakdown>
|
|
231
235
|
)
|
|
232
236
|
}
|
|
@@ -236,15 +240,17 @@ export function Fraction(props: {
|
|
|
236
240
|
denominator: bigint
|
|
237
241
|
}): JSX.Element {
|
|
238
242
|
return (
|
|
239
|
-
<fraction>
|
|
240
|
-
<numerator data-css={props.numerator === 1n ? `one` : undefined}>
|
|
243
|
+
<rational-fraction>
|
|
244
|
+
<rational-numerator data-css={props.numerator === 1n ? `one` : undefined}>
|
|
241
245
|
{Number(props.numerator)}
|
|
242
|
-
</numerator>
|
|
243
|
-
<solidus />
|
|
244
|
-
<
|
|
246
|
+
</rational-numerator>
|
|
247
|
+
<rational-solidus />
|
|
248
|
+
<rational-denominator
|
|
249
|
+
data-css={props.denominator === 1n ? `one` : undefined}
|
|
250
|
+
>
|
|
245
251
|
{Number(props.denominator)}
|
|
246
|
-
</denominator>
|
|
247
|
-
</fraction>
|
|
252
|
+
</rational-denominator>
|
|
253
|
+
</rational-fraction>
|
|
248
254
|
)
|
|
249
255
|
}
|
|
250
256
|
|
|
@@ -284,7 +290,7 @@ export function RationalFields({
|
|
|
284
290
|
}}
|
|
285
291
|
placeholder="1"
|
|
286
292
|
/>
|
|
287
|
-
<solidus />
|
|
293
|
+
<rational-solidus />
|
|
288
294
|
<input
|
|
289
295
|
type="number"
|
|
290
296
|
value={denominator()?.toString()}
|
package/src/App.tsx.module.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
app.class {
|
|
1
|
+
rationality-app.class {
|
|
2
2
|
--line: rgba(23, 36, 51, 0.14);
|
|
3
3
|
|
|
4
4
|
& /* local globals */,
|
|
@@ -8,14 +8,14 @@ app.class {
|
|
|
8
8
|
|
|
9
9
|
flex-direction: column;
|
|
10
10
|
|
|
11
|
-
fraction,
|
|
11
|
+
rational-fraction,
|
|
12
12
|
fieldset {
|
|
13
13
|
flex-flow: column;
|
|
14
14
|
font-size: 24px;
|
|
15
15
|
border: none;
|
|
16
16
|
padding: 0;
|
|
17
|
-
> numerator,
|
|
18
|
-
> denominator,
|
|
17
|
+
> rational-numerator,
|
|
18
|
+
> rational-denominator,
|
|
19
19
|
> input {
|
|
20
20
|
margin: 0;
|
|
21
21
|
height: 36px;
|
|
@@ -26,7 +26,7 @@ app.class {
|
|
|
26
26
|
color: #0002;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
> solidus {
|
|
29
|
+
> rational-solidus {
|
|
30
30
|
height: 2px;
|
|
31
31
|
background: #000;
|
|
32
32
|
}
|
|
@@ -51,7 +51,7 @@ app.class {
|
|
|
51
51
|
padding: 2px 12px;
|
|
52
52
|
> fraction-list {
|
|
53
53
|
flex-grow: 1;
|
|
54
|
-
> plus {
|
|
54
|
+
> rational-plus {
|
|
55
55
|
font-size: 30px;
|
|
56
56
|
color: #0002;
|
|
57
57
|
align-items: center;
|
|
@@ -60,13 +60,13 @@ app.class {
|
|
|
60
60
|
flex-flow: column;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
> equals {
|
|
63
|
+
> rational-equals {
|
|
64
64
|
font-size: 48px;
|
|
65
65
|
align-items: center;
|
|
66
66
|
color: #0002;
|
|
67
67
|
}
|
|
68
|
-
> fraction {}
|
|
69
|
-
> quotient {
|
|
68
|
+
> rational-fraction {}
|
|
69
|
+
> rational-quotient {
|
|
70
70
|
align-items: center;
|
|
71
71
|
font-size: 48px;
|
|
72
72
|
position: relative;
|
|
@@ -80,7 +80,7 @@ app.class {
|
|
|
80
80
|
justify-content: flex-start;
|
|
81
81
|
justify-items: flex-start;
|
|
82
82
|
align-content: flex-start;
|
|
83
|
-
> bit {
|
|
83
|
+
> quotient-bit {
|
|
84
84
|
flex-shrink: 0;
|
|
85
85
|
flex-grow: 0;
|
|
86
86
|
height: 5px;
|
package/src/main.tsx
CHANGED
package/tsconfig.app.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
3
4
|
"target": "ES2024",
|
|
5
|
+
"lib": ["DOM", "ESNext"],
|
|
4
6
|
"module": "ESNext",
|
|
5
7
|
"moduleResolution": "Bundler",
|
|
6
8
|
"noEmit": true,
|
|
@@ -9,7 +11,7 @@
|
|
|
9
11
|
"exactOptionalPropertyTypes": true,
|
|
10
12
|
"jsx": "preserve",
|
|
11
13
|
"jsxImportSource": "solid-js",
|
|
12
|
-
"types": ["vite/client"]
|
|
14
|
+
"types": ["vite/client", "lasertag/solid-jsx"]
|
|
13
15
|
},
|
|
14
16
|
"include": ["src", "vite.config.ts"]
|
|
15
17
|
}
|
package/vite.config.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
app._class_r58xi_1{--line:#17243324}app._class_r58xi_1,app._class_r58xi_1 *{display:flex}app._class_r58xi_1{flex-direction:column}app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset{border:none;flex-flow:column;padding:0;font-size:24px}:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>numerator,:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>denominator,:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>input{flex-grow:1;justify-content:center;align-items:center;height:36px;margin:0}:is(:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>numerator,:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>denominator,:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>input)[data-css=one]{color:#0002}:is(app._class_r58xi_1 fraction,app._class_r58xi_1 fieldset)>solidus{background:#000;height:2px}app._class_r58xi_1>header{justify-content:space-between;align-items:center;padding:12px}app._class_r58xi_1>header>button{justify-content:center;align-items:center}app._class_r58xi_1>main{flex-flow:column;gap:2px;padding:2px}app._class_r58xi_1>main>rational-breakdown{border:1px solid #0002;padding:2px 12px}app._class_r58xi_1>main>rational-breakdown>fraction-list{flex-grow:1}app._class_r58xi_1>main>rational-breakdown>fraction-list>plus{color:#0002;align-items:center;font-size:30px}app._class_r58xi_1>main>rational-breakdown>fraction-list>infix-buttons{flex-flow:column}app._class_r58xi_1>main>rational-breakdown>equals{color:#0002;align-items:center;font-size:48px}app._class_r58xi_1>main>rational-breakdown>quotient{align-items:center;font-size:48px;position:relative}app._class_r58xi_1>main>rational-breakdown>quotient>quotient-bits{flex-wrap:wrap;place-content:flex-start;place-items:flex-start;width:40px;position:absolute;top:0;right:0}app._class_r58xi_1>main>rational-breakdown>quotient>quotient-bits>bit{background:0 0;border:1px solid #0002;flex-grow:0;flex-shrink:0;width:5px;height:5px}app._class_r58xi_1>main>rational-breakdown>quotient>quotient-bits>bit[data-css=one]{background:#0002}:root{--bg:#f6f1e8;--bg-deep:#efe3d0;--panel:#fffcf7db;--panel-strong:#fffaf2;--ink:#172433;--muted:#5d6670;--gold:#d88d1f;--gold-soft:#f5d8a5;--mint:#bfd7c2;--line:#17243324;--shadow:0 24px 80px #3721081f;--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;color:var(--ink);background:radial-gradient(circle at top left, #d88d1f29, transparent 28%), radial-gradient(circle at right center, #1724331f, transparent 30%), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%);font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Palatino,serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:100svh}button,input,select{font:inherit}button,select,input{border:1px solid var(--line);border-radius:var(--radius-sm)}button:hover{transform:translateY(-1px);box-shadow:0 12px 28px #17243324}button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}button.secondary,button.ghost-button{color:var(--ink);background:0 0}button.secondary{border-style:dashed}button.ghost-button{padding-inline:.85rem}input,select{background:#ffffffbf;width:100%;padding:.75rem .85rem}code{font-family:SFMono-Regular,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:.9em}
|