diff --git a/.prettierrc b/.prettierrc index 6b783636..c773ca0d 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,4 @@ { - "plugins": ["prettier-plugin-svelte"], + "plugins": ["prettier-plugin-svelte", "prettier-plugin-css-order"], "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] } diff --git a/.stylelintrc.json b/.stylelintrc.json index 97b2cec3..a127665c 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -3,7 +3,6 @@ "stylelint-config-standard-scss", "stylelint-config-recommended-scss", "stylelint-config-html/svelte", - "stylelint-config-clean-order", "stylelint-config-prettier-scss" ], "rules": { diff --git a/package.json b/package.json index 8f699aa9..18ee93fb 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,7 @@ "matrix-js-sdk": "^37.12.0", "npm-run-all": "^4.1.5", "prettier": "^3.6.2", + "prettier-plugin-css-order": "^2.1.2", "prettier-plugin-svelte": "^3.4.0", "rxjs": "^7.8.2", "sass": "^1.89.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf6eabc3..1b00f27f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,6 +116,9 @@ importers: prettier: specifier: ^3.6.2 version: 3.6.2 + prettier-plugin-css-order: + specifier: ^2.1.2 + version: 2.1.2(postcss@8.5.3)(prettier@3.6.2) prettier-plugin-svelte: specifier: ^3.4.0 version: 3.4.0(prettier@3.6.2)(svelte@5.37.1) @@ -1944,6 +1947,12 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-functions-list@3.2.3: resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==} engines: {node: '>=12 || >=16'} @@ -2831,9 +2840,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} @@ -3262,6 +3268,12 @@ packages: resolution: {integrity: sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==} engines: {node: ^12 || >=14} + postcss-less@6.0.0: + resolution: {integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==} + engines: {node: '>=12'} + peerDependencies: + postcss: ^8.3.5 + postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} @@ -3306,6 +3318,12 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + prettier-plugin-css-order@2.1.2: + resolution: {integrity: sha512-vomxPjHI6pOMYcBuouSJHxxQClJXaUpU9rsV9IAO2wrSTZILRRlrxAAR8t9UF6wtczLkLfNRFUwM+ZbGXOONUA==} + engines: {node: '>=16'} + peerDependencies: + prettier: 3.x + prettier-plugin-svelte@3.4.0: resolution: {integrity: sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==} peerDependencies: @@ -4361,7 +4379,7 @@ snapshots: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -4421,7 +4439,7 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -5098,7 +5116,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6175,6 +6193,10 @@ snapshots: crypto-random-string@2.0.0: {} + css-declaration-sorter@7.2.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + css-functions-list@3.2.3: {} css-tree@3.1.0: @@ -7193,8 +7215,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-tokens@9.0.1: {} js-yaml@4.1.0: @@ -7578,10 +7598,14 @@ snapshots: postcss-html@1.7.0: dependencies: htmlparser2: 8.0.2 - js-tokens: 9.0.0 + js-tokens: 9.0.1 postcss: 8.5.6 postcss-safe-parser: 6.0.0(postcss@8.5.6) + postcss-less@6.0.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + postcss-media-query-parser@0.2.3: {} postcss-resolve-nested-selector@0.1.6: {} @@ -7621,6 +7645,15 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prettier-plugin-css-order@2.1.2(postcss@8.5.3)(prettier@3.6.2): + dependencies: + css-declaration-sorter: 7.2.0(postcss@8.5.3) + postcss-less: 6.0.0(postcss@8.5.3) + postcss-scss: 4.0.9(postcss@8.5.3) + prettier: 3.6.2 + transitivePeerDependencies: + - postcss + prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.1): dependencies: prettier: 3.6.2 @@ -8235,7 +8268,7 @@ snapshots: terser@5.31.1: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 diff --git a/src/lib/charrecorder/CharRecorder.svelte b/src/lib/charrecorder/CharRecorder.svelte index 90784d54..97ca6de1 100644 --- a/src/lib/charrecorder/CharRecorder.svelte +++ b/src/lib/charrecorder/CharRecorder.svelte @@ -113,15 +113,15 @@ position: absolute; top: 0; left: 0; - font-family: inherit; - font-size: inherit; color: inherit; + font-size: inherit; + font-family: inherit; user-select: none; } svg > :global(text) { - font-family: inherit; font-size: inherit; + font-family: inherit; fill: currentColor; dominant-baseline: middle; } diff --git a/src/lib/charrecorder/ChordHud.svelte b/src/lib/charrecorder/ChordHud.svelte index 7af7d8b0..00e7d39b 100644 --- a/src/lib/charrecorder/ChordHud.svelte +++ b/src/lib/charrecorder/ChordHud.svelte @@ -83,24 +83,24 @@ diff --git a/src/lib/chat/MatrixRoomMembers.svelte b/src/lib/chat/MatrixRoomMembers.svelte index 900aa005..86d2d76d 100644 --- a/src/lib/chat/MatrixRoomMembers.svelte +++ b/src/lib/chat/MatrixRoomMembers.svelte @@ -37,16 +37,16 @@ diff --git a/src/lib/chat/events/MatrixEvent.svelte b/src/lib/chat/events/MatrixEvent.svelte index bffe20e6..2e2f365a 100644 --- a/src/lib/chat/events/MatrixEvent.svelte +++ b/src/lib/chat/events/MatrixEvent.svelte @@ -255,21 +255,21 @@ } .toolbar { + display: flex; position: absolute; top: -26px; right: 0; - background: var(--md-sys-color-secondary-container); - color: var(--md-sys-color-on-secondary-container); - padding: 4px; - border-radius: 4px; - display: flex; z-index: 100; + border-radius: 4px; + background: var(--md-sys-color-secondary-container); + padding: 4px; + color: var(--md-sys-color-on-secondary-container); a, button { - font-size: 16px; width: 24px; height: 24px; + font-size: 16px; } } @@ -289,10 +289,10 @@ } .dot { + animation: bounce 1s infinite; + border-radius: 50%; width: 6px; height: 6px; - border-radius: 50%; - animation: bounce 1s infinite; } .sender, @@ -302,10 +302,10 @@ .avatar { grid-area: avatar; + translate: 0 2px; + border-radius: 50%; width: 32px; height: 32px; - border-radius: 50%; - translate: 0 2px; } div.avatar { @@ -322,18 +322,18 @@ } .reactions { - grid-area: reactions; - margin-top: 2px; display: flex; + grid-area: reactions; gap: 4px; + margin-top: 2px; } .reaction { - border: 1px solid var(--md-sys-color-outline); - padding: 6px; - border-radius: 6px; - height: 24px; display: flex; + border: 1px solid var(--md-sys-color-outline); + border-radius: 6px; + padding: 6px; + height: 24px; font-size: 12px; > .count { @@ -344,16 +344,16 @@ .event { display: grid; position: relative; - padding-inline: 0.5em; - margin-inline: 0.5em; - padding-block: 0.25em; - border-radius: 4px; + grid-template-columns: 32px 1fr auto; grid-template-areas: "avatar sender date" "avatar content content" "none reactions reactions"; - grid-template-columns: 32px 1fr auto; + margin-inline: 0.5em; + border-radius: 4px; + padding-inline: 0.5em; + padding-block: 0.25em; } .content { @@ -370,12 +370,12 @@ .backdrop { position: absolute; - inset: 0; - z-index: -1; opacity: 0.25; - - background: var(--md-sys-color-surface-variant); + z-index: -1; + inset: 0; border-radius: 8px; + + background: var(--md-sys-color-surface-variant); } diff --git a/src/lib/chat/events/MatrixMessageEvent.svelte b/src/lib/chat/events/MatrixMessageEvent.svelte index 465be181..91518ee7 100644 --- a/src/lib/chat/events/MatrixMessageEvent.svelte +++ b/src/lib/chat/events/MatrixMessageEvent.svelte @@ -39,9 +39,9 @@ } img { + border-radius: 8px; max-width: 100%; max-height: 16em; - border-radius: 8px; } .content { diff --git a/src/lib/components/Action.svelte b/src/lib/components/Action.svelte index de7f5900..b4f6b1d6 100644 --- a/src/lib/components/Action.svelte +++ b/src/lib/components/Action.svelte @@ -20,17 +20,17 @@ {#snippet popoverSnippet()} -
-<{info.id ?? `0x${info.code.toString(16)}`}> -{#if info.title} -{info.title} -{/if} - {#if info.variant === "left"} - (Left) - {:else if info.variant === "right"} - (Right) - {/if} -
+
+ <{info.id ?? `0x${info.code.toString(16)}`}> + {#if info.title} + {info.title} + {/if} + {#if info.variant === "left"} + (Left) + {:else if info.variant === "right"} + (Right) + {/if} +
{/snippet} {#if display === "keys"} @@ -50,15 +50,17 @@ {:else if display === "inline-keys"} {#if !info.icon && dynamicMapping?.length === 1} {dynamicMapping}{@render popoverSnippet()}{dynamicMapping}{@render popoverSnippet()} {:else if !info.icon && info.id?.length === 1} {info.id}{@render popoverSnippet()}{info.id}{@render popoverSnippet()} {:else} {dynamicMapping ?? info.icon ?? @@ -79,9 +81,9 @@ diff --git a/src/lib/components/Terminal.svelte b/src/lib/components/Terminal.svelte index d28bbd6e..293e9d77 100644 --- a/src/lib/components/Terminal.svelte +++ b/src/lib/components/Terminal.svelte @@ -33,63 +33,61 @@ diff --git a/src/lib/components/layout/ActionSelector.svelte b/src/lib/components/layout/ActionSelector.svelte index 13916fb9..09f9d99d 100644 --- a/src/lib/components/layout/ActionSelector.svelte +++ b/src/lib/components/layout/ActionSelector.svelte @@ -189,18 +189,17 @@ border: none; label { - height: unset; - padding-block: 2px; + border: 1px solid currentcolor; + border-radius: 6px; padding-inline: 4px; + padding-block: 2px; + height: unset; font-size: 14px; - border: 1px solid currentcolor; - border-radius: 6px; - &:has(:checked) { - color: var(--md-sys-color-on-secondary); background: var(--md-sys-color-secondary); + color: var(--md-sys-color-on-secondary); } input { @@ -211,34 +210,33 @@ dialog { display: flex; - align-items: center; justify-content: center; + align-items: center; - width: 100%; - height: 100%; + border: none; background: rgba(0 0 0 / 60%); - border: none; + width: 100%; + height: 100%; } aside { - pointer-events: none; + opacity: 0.4; margin: 8px; - - opacity: 0.4; border: 1px dashed var(--md-sys-color-outline); border-radius: 8px; + pointer-events: none; > h3 { - width: fit-content; + margin-inline-start: 16px; margin-block-start: -13px; margin-block-end: 0; - margin-inline-start: 16px; - padding-inline: 8px; background: var(--md-sys-color-background); + padding-inline: 8px; + width: fit-content; } @media (prefers-contrast: more) { @@ -253,26 +251,26 @@ .search-row { display: flex; - gap: 4px; align-items: center; + gap: 4px; margin-inline: 16px; } .content { - position: relative; - transform-origin: top left; - - overflow: hidden; display: flex; + position: relative; flex-direction: column; + transform-origin: top left; + border-radius: 16px; + + background: var(--md-sys-color-background); width: calc(min(30cm, 90%)); height: calc(min(100% - 128px, 90%)); - color: var(--md-sys-color-on-background); + overflow: hidden; - background: var(--md-sys-color-background); - border-radius: 16px; + color: var(--md-sys-color-on-background); @media (forced-colors: active) { border: 1px solid CanvasText; @@ -280,39 +278,38 @@ } input[type="search"] { - width: 100%; - height: 64px; + transition: all 250ms ease; margin-block-end: 8px; - padding-inline: 16px; - - font-family: inherit; - font-size: 16px; - color: currentcolor; - - background: none; border: none; border-bottom: 1px solid var(--md-sys-color-surface-variant); - transition: all 250ms ease; + background: none; + padding-inline: 16px; + width: 100%; + height: 64px; + color: currentcolor; + font-size: 16px; + + font-family: inherit; &:focus { - border-bottom: 1px solid var(--md-sys-color-primary); outline: none; + border-bottom: 1px solid var(--md-sys-color-primary); } } ul { --scrollbar-color: var(--md-sys-color-surface-variant); - scrollbar-gutter: both-edges stable; - - overflow-y: auto; - box-sizing: border-box; - height: 100%; margin: 0; padding: 0; padding-inline: 4px; + height: 100%; + + overflow-y: auto; + + scrollbar-gutter: both-edges stable; } li { @@ -322,27 +319,27 @@ .exact { display: flex; flex-direction: column; - align-items: center; justify-content: center; - - width: 100%; + align-items: center; margin-block-start: 8px; border: 1px solid var(--md-sys-color-primary); border-radius: 8px; + width: 100%; + > i { display: flex; - gap: 4px; - align-items: center; justify-content: center; + align-items: center; + gap: 4px; + border-radius: 0 0 8px 8px; + + background: var(--md-sys-color-primary); padding-inline: 6px; color: var(--md-sys-color-on-primary); - - background: var(--md-sys-color-primary); - border-radius: 0 0 8px 8px; } @media (forced-colors: active) { diff --git a/src/lib/components/layout/GenericLayout.svelte b/src/lib/components/layout/GenericLayout.svelte index 38ac28f9..d47ea142 100644 --- a/src/lib/components/layout/GenericLayout.svelte +++ b/src/lib/components/layout/GenericLayout.svelte @@ -219,9 +219,9 @@ diff --git a/src/lib/components/layout/KeyText.svelte b/src/lib/components/layout/KeyText.svelte index 02ca3059..39f02fef 100644 --- a/src/lib/components/layout/KeyText.svelte +++ b/src/lib/components/layout/KeyText.svelte @@ -83,15 +83,15 @@ $transition: 200ms; text { - will-change: translate, scale; - user-select: none; - transform-origin: center; transform-box: fill-box; + transform-origin: center; transition: fill #{$focus-transition} ease, opacity #{$transition} ease, translate #{$transition} ease, scale #{$transition} ease; + will-change: translate, scale; + user-select: none; @media (prefers-contrast: more) { --inactive-opacity: 0.8; diff --git a/src/lib/components/layout/KeyboardKey.svelte b/src/lib/components/layout/KeyboardKey.svelte index 172ce25e..84e1a7bb 100644 --- a/src/lib/components/layout/KeyboardKey.svelte +++ b/src/lib/components/layout/KeyboardKey.svelte @@ -113,14 +113,14 @@ $transition: 200ms; rect { - transform-origin: center; transform-box: fill-box; + transform-origin: center; } path, g { - transform-origin: top left; transform-box: fill-box; + transform-origin: top left; } path, @@ -138,15 +138,15 @@ g.faded, g:hover { - cursor: default; opacity: 0.6; transition: opacity #{$transition} ease; + cursor: default; } g.highlight, g:focus-within { - color: var(--md-sys-color-primary); outline: none; + color: var(--md-sys-color-primary); > path, > rect { diff --git a/src/lib/components/layout/Layout.svelte b/src/lib/components/layout/Layout.svelte index 5ca92f2c..8bbccf95 100644 --- a/src/lib/components/layout/Layout.svelte +++ b/src/lib/components/layout/Layout.svelte @@ -76,8 +76,8 @@ .container { display: flex; flex-direction: column; - align-items: center; justify-content: center; + align-items: center; width: 100%; height: 100%; @@ -85,24 +85,23 @@ } fieldset { - position: relative; - display: flex; - align-items: center; + position: relative; justify-content: center; - - padding: 8px; + align-items: center; border: none; + + padding: 8px; } .layers { display: flex; - align-items: center; justify-content: center; - - margin-inline: auto; + align-items: center; gap: 2px; + + margin-inline: auto; } diff --git a/src/lib/dialogs/ConnectionFailed.svelte b/src/lib/dialogs/ConnectionFailed.svelte index 3f3c3156..43fef284 100644 --- a/src/lib/dialogs/ConnectionFailed.svelte +++ b/src/lib/dialogs/ConnectionFailed.svelte @@ -83,9 +83,9 @@ diff --git a/src/lib/dialogs/Dialog.svelte b/src/lib/dialogs/Dialog.svelte index d19ab2e5..a35984ce 100644 --- a/src/lib/dialogs/Dialog.svelte +++ b/src/lib/dialogs/Dialog.svelte @@ -16,15 +16,15 @@ diff --git a/src/routes/(app)/BrowserWarning.svelte b/src/routes/(app)/BrowserWarning.svelte index 00114ae4..f0d0e535 100644 --- a/src/routes/(app)/BrowserWarning.svelte +++ b/src/routes/(app)/BrowserWarning.svelte @@ -26,17 +26,17 @@ dialog { display: flex; flex-direction: column; - align-items: center; justify-content: center; + align-items: center; + border: none; + + background: var(--md-sys-color-error); width: 100vw; height: 100vh; color: var(--md-sys-color-on-error); - background: var(--md-sys-color-error); - border: none; - > * { max-width: 20cm; } @@ -54,8 +54,8 @@ div > p { display: flex; - gap: 8px; align-items: center; + gap: 8px; list-style: none; } diff --git a/src/routes/(app)/Footer.svelte b/src/routes/(app)/Footer.svelte index 5a20c7c2..15f1993f 100644 --- a/src/routes/(app)/Footer.svelte +++ b/src/routes/(app)/Footer.svelte @@ -175,9 +175,9 @@ diff --git a/src/routes/(app)/SyncOverlay.svelte b/src/routes/(app)/SyncOverlay.svelte index 802eedb6..eee471cb 100644 --- a/src/routes/(app)/SyncOverlay.svelte +++ b/src/routes/(app)/SyncOverlay.svelte @@ -33,8 +33,8 @@ .container { display: flex; flex-direction: column; - align-items: center; justify-content: center; + align-items: center; } div { @@ -42,10 +42,10 @@ } progress { - overflow: hidden; + border-radius: 4px; width: 100%; height: 8px; - border-radius: 4px; + overflow: hidden; } progress::-webkit-progress-bar { @@ -53,7 +53,7 @@ } progress::-webkit-progress-value { - background: var(--md-sys-color-primary); transition: width 2s ease; + background: var(--md-sys-color-primary); } diff --git a/src/routes/(app)/ccos/+layout.svelte b/src/routes/(app)/ccos/+layout.svelte index 958ffaee..5a969490 100644 --- a/src/routes/(app)/ccos/+layout.svelte +++ b/src/routes/(app)/ccos/+layout.svelte @@ -97,8 +97,8 @@ } .correct-device { - color: var(--md-sys-color-primary); opacity: 1; + color: var(--md-sys-color-primary); } .incorrect-device { diff --git a/src/routes/(app)/ccos/+page.svelte b/src/routes/(app)/ccos/+page.svelte index 86aa8c9f..91a48551 100644 --- a/src/routes/(app)/ccos/+page.svelte +++ b/src/routes/(app)/ccos/+page.svelte @@ -28,8 +28,8 @@ diff --git a/src/routes/(app)/ccos/[device]/[version]/+page.svelte b/src/routes/(app)/ccos/[device]/[version]/+page.svelte index 2738b622..fdba0246 100644 --- a/src/routes/(app)/ccos/[device]/[version]/+page.svelte +++ b/src/routes/(app)/ccos/[device]/[version]/+page.svelte @@ -353,8 +353,8 @@ } .changelog ul { - list-style: none; padding-inline-start: 0em; + list-style: none; } .changelog li { @@ -364,11 +364,11 @@ .changelog b { display: inline-block; - color: var(--md-sys-color-on-tertiary-container); + translate: -0.5em -0.2em; + border-radius: 8px; background: var(--md-sys-color-tertiary-container); padding: 0.2em 0.5em; - border-radius: 8px; - translate: -0.5em -0.2em; + color: var(--md-sys-color-on-tertiary-container); } pre { @@ -376,8 +376,8 @@ } .unsafe-opt-in { - margin-block: 1em; opacity: 0.6; + margin-block: 1em; font-size: 0.7em; & + .unsafe-updates { @@ -425,22 +425,22 @@ button.inline-button { display: inline; - padding: 0; margin: 0; + padding: 0; height: unset; - font-size: inherit; color: var(--md-sys-color-primary); + font-size: inherit; .icon { - font-size: 1.2em; translate: 0 0.1em; padding-inline-end: 0.2em; + font-size: 1.2em; } } .icon.ok { - font-size: 1.2em; translate: 0 0.1em; + font-size: 1.2em; --icon-fill: 1; } @@ -449,17 +449,7 @@ } button.update-button { - overflow: hidden; position: relative; - height: 42px; - - border: 2px solid currentcolor; - border-radius: 8px; - - outline: 2px dashed currentcolor; - outline-offset: 4px; - - background: var(--md-sys-color-background); transition: border 200ms ease, color 200ms ease; @@ -467,9 +457,19 @@ margin: 6px; margin-block: 16px; + outline: 2px dashed currentcolor; + outline-offset: 4px; + + border: 2px solid currentcolor; + border-radius: 8px; + + background: var(--md-sys-color-background); + height: 42px; + overflow: hidden; + &.primary { - color: var(--md-sys-color-primary); background: none; + color: var(--md-sys-color-primary); } &.progress, @@ -478,34 +478,34 @@ } &.working::before { - z-index: -1; position: absolute; + z-index: -1; + border-radius: 8px; background: var(--md-sys-color-background); width: calc(100% - 4px); height: calc(100% - 4px); - border-radius: 8px; content: ""; } &.working::after { - z-index: -2; position: absolute; - content: ""; - background: var(--md-sys-color-primary); + z-index: -2; animation: rotate 1s ease-out forwards infinite; - height: 30%; + background: var(--md-sys-color-primary); width: 120%; + height: 30%; + content: ""; } &.progress::after { - z-index: -2; position: absolute; left: 0; - content: ""; - background: var(--md-sys-color-primary); opacity: 0.2; - height: 100%; + z-index: -2; + background: var(--md-sys-color-primary); width: var(--progress); + height: 100%; + content: ""; } } diff --git a/src/routes/(app)/chat-rx/+page.svelte b/src/routes/(app)/chat-rx/+page.svelte index 6496c957..f91ece57 100644 --- a/src/routes/(app)/chat-rx/+page.svelte +++ b/src/routes/(app)/chat-rx/+page.svelte @@ -55,8 +55,8 @@ .layout { display: flex; - height: 100%; width: 100%; + height: 100%; } hr { @@ -65,20 +65,20 @@ } ul { - list-style: none; - padding: 0; margin: 0; + padding: 0; + list-style: none; } button, a { display: flex; - align-items: center; justify-content: center; - overflow: hidden; + align-items: center; + background: var(--md-sys-color-surface-variant); width: 56px; height: 56px; - background: var(--md-sys-color-surface-variant); + overflow: hidden; } .chats { @@ -86,7 +86,7 @@ } .space { - font-size: 20px; margin-bottom: 8px; + font-size: 20px; } diff --git a/src/routes/(app)/chat/+page.svelte b/src/routes/(app)/chat/+page.svelte index 02f68583..0815cd58 100644 --- a/src/routes/(app)/chat/+page.svelte +++ b/src/routes/(app)/chat/+page.svelte @@ -174,7 +174,7 @@ } .members { - width: 200px; flex-shrink: 0; + width: 200px; } diff --git a/src/routes/(app)/config/EditActions.svelte b/src/routes/(app)/config/EditActions.svelte index 341b8654..86a41c96 100644 --- a/src/routes/(app)/config/EditActions.svelte +++ b/src/routes/(app)/config/EditActions.svelte @@ -193,19 +193,19 @@ diff --git a/src/routes/(app)/config/Navigation.svelte b/src/routes/(app)/config/Navigation.svelte index 1af3b4f4..05e7ffd0 100644 --- a/src/routes/(app)/config/Navigation.svelte +++ b/src/routes/(app)/config/Navigation.svelte @@ -56,33 +56,32 @@ nav { display: grid; grid-template-columns: 1fr auto 1fr; + margin-inline: auto; + margin-block: 8px; + padding-inline: 16px; width: calc(min(100%, 28cm)); - margin-block: 8px; - margin-inline: auto; - padding-inline: 16px; } .icon { - cursor: pointer; + display: flex; position: relative; - - display: flex; - align-items: center; justify-content: center; + align-items: center; - aspect-ratio: 1; - padding: 0; - - color: inherit; - text-decoration: none; - - background: transparent; + transition: all 250ms ease; + cursor: pointer; border: none; border-radius: 50%; - transition: all 250ms ease; + background: transparent; + padding: 0; + + aspect-ratio: 1; + + color: inherit; + text-decoration: none; } .actions { @@ -96,13 +95,13 @@ .profiles { display: flex; - gap: 2px; - align-items: center; justify-content: center; + align-items: center; + gap: 2px; } :disabled { - pointer-events: none; opacity: 0.5; + pointer-events: none; } diff --git a/src/routes/(app)/config/chords/+page.svelte b/src/routes/(app)/config/chords/+page.svelte index 0143a90b..e2abc67a 100644 --- a/src/routes/(app)/config/chords/+page.svelte +++ b/src/routes/(app)/config/chords/+page.svelte @@ -360,8 +360,8 @@ diff --git a/src/routes/(app)/config/chords/ChordActionEdit.svelte b/src/routes/(app)/config/chords/ChordActionEdit.svelte index ad95938f..a5ff28ec 100644 --- a/src/routes/(app)/config/chords/ChordActionEdit.svelte +++ b/src/routes/(app)/config/chords/ChordActionEdit.svelte @@ -176,9 +176,9 @@ } .add { - font-size: 18px; - height: 20px; opacity: 0; + height: 20px; + font-size: 18px; --icon-fill: 1; } @@ -187,13 +187,12 @@ } .chord { - position: relative; - display: inline-flex; + position: relative; gap: 4px; + margin-inline: 4px; height: 32px; - margin-inline: 4px; &:focus-within { outline: none; @@ -201,22 +200,21 @@ } .chord::after { - content: ""; - position: absolute; top: 50%; transform-origin: center left; translate: -20px 0; scale: 0 1; - width: calc(100% - 60px); - height: 1px; - - background: currentcolor; - transition: scale 250ms ease, color 250ms ease; + + background: currentcolor; + + width: calc(100% - 60px); + height: 1px; + content: ""; } .edited { diff --git a/src/routes/(app)/config/chords/ChordEdit.svelte b/src/routes/(app)/config/chords/ChordEdit.svelte index 37838e98..032d2fa3 100644 --- a/src/routes/(app)/config/chords/ChordEdit.svelte +++ b/src/routes/(app)/config/chords/ChordEdit.svelte @@ -133,11 +133,11 @@ .separator { display: inline-flex; - width: 1px; - height: 24px; - opacity: 0.2; background: currentcolor; + + width: 1px; + height: 24px; } button { @@ -153,12 +153,12 @@ } .table-buttons { - opacity: 0; - transition: opacity 75ms ease; position: absolute; top: 0; right: 0; transform: translate(100%, -50%); + opacity: 0; + transition: opacity 75ms ease; background: var(--md-sys-color-surface-variant); } diff --git a/src/routes/(app)/config/chords/ChordPhraseEdit.svelte b/src/routes/(app)/config/chords/ChordPhraseEdit.svelte index dc15d6c8..43d2898f 100644 --- a/src/routes/(app)/config/chords/ChordPhraseEdit.svelte +++ b/src/routes/(app)/config/chords/ChordPhraseEdit.svelte @@ -260,26 +260,26 @@ transform: translateX(-50%); translate: 0 0; - width: 2px; - height: 100%; + transition: translate 50ms ease; background: var(--md-sys-color-on-secondary-container); - transition: translate 50ms ease; + width: 2px; + height: 100%; button { position: absolute; top: -24px; left: 0; - - height: 24px; - padding: 0; - - color: var(--md-sys-color-on-secondary-container); - - background: var(--md-sys-color-secondary-container); border: 2px solid currentcolor; border-radius: 12px 12px 12px 0; + + background: var(--md-sys-color-secondary-container); + padding: 0; + + height: 24px; + + color: var(--md-sys-color-on-secondary-container); } } @@ -292,13 +292,13 @@ } .auto-space-edit { - padding-inline: 0; - font-size: 1.3em; margin-inline: 8px; - background: var(--md-sys-color-tertiary-container); - color: var(--md-sys-color-on-tertiary-container); - height: 1em; border-radius: 4px; + background: var(--md-sys-color-tertiary-container); + padding-inline: 0; + height: 1em; + color: var(--md-sys-color-on-tertiary-container); + font-size: 1.3em; &:first-of-type:not(:has(:checked)), &:last-of-type:has(:checked) { @@ -312,9 +312,9 @@ .wrapper { display: flex; - align-items: center; position: relative; + align-items: center; padding-block: 4px; @@ -322,20 +322,19 @@ &::after, &::before { - content: ""; - position: absolute; bottom: -4px; - width: calc(100% - 8px); - height: 1px; - opacity: 0; - background: currentcolor; transition: opacity 150ms ease, scale 250ms ease; + background: currentcolor; + + width: calc(100% - 8px); + height: 1px; + content: ""; } &::after { @@ -354,12 +353,11 @@ } [role="textbox"] { - cursor: text; + display: flex; position: relative; - - display: flex; align-items: center; + cursor: text; white-space: pre; &:focus-within { diff --git a/src/routes/(app)/config/layout/+page.svelte b/src/routes/(app)/config/layout/+page.svelte index b3c2e300..a74a4e16 100644 --- a/src/routes/(app)/config/layout/+page.svelte +++ b/src/routes/(app)/config/layout/+page.svelte @@ -64,8 +64,8 @@ diff --git a/src/routes/(app)/editor/+page.svelte b/src/routes/(app)/editor/+page.svelte index 58a008df..e5fde088 100644 --- a/src/routes/(app)/editor/+page.svelte +++ b/src/routes/(app)/editor/+page.svelte @@ -102,21 +102,21 @@ left: 0; transition: opacity 0.1s; padding: 16px; - padding-left: 0; padding-bottom: 5em; + padding-left: 0; } .toolbar { + display: flex; position: fixed; + right: 0; bottom: 0; left: 0; - right: 0; - padding-right: 16px; - display: flex; flex-direction: row; - align-items: center; justify-content: space-between; + align-items: center; backdrop-filter: blur(10px); + padding-right: 16px; > div { display: flex; diff --git a/src/routes/(app)/learn/+page.svelte b/src/routes/(app)/learn/+page.svelte index 392b7554..0ed68878 100644 --- a/src/routes/(app)/learn/+page.svelte +++ b/src/routes/(app)/learn/+page.svelte @@ -9,11 +9,11 @@