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 @@