Grid 1
@@ -274,7 +282,13 @@
Form elements
Switch
-
Reset
+
+ Cancel button
+
+
+ Danger button
+
+
Reset
Submit
diff --git a/apps/docs/install.html b/apps/docs/install.html
index 8f26695..6ba874e 100644
--- a/apps/docs/install.html
+++ b/apps/docs/install.html
@@ -31,19 +31,18 @@
Basic Setup
Themes
- launch.css supports light and dark themes with seamless switching:
+ launch.css supports light and dark themes with seamless switching
+ using color-scheme css properties:
- Light
- Dark
+ Light
+ Dark
Theme Switching Code
- <html data-theme="dark">
- <html data-theme="light">
+ color-scheme: only dark;
+ color-scheme: only light;
{{/base}}
diff --git a/apps/docs/main.js b/apps/docs/main.js
index cb2080c..91684f4 100644
--- a/apps/docs/main.js
+++ b/apps/docs/main.js
@@ -4,21 +4,20 @@ import "htmx-ext-preload";
import "highlight.js/styles/github-dark.css";
import hljs from "highlight.js/lib/core";
import bash from "highlight.js/lib/languages/bash";
+import css from "highlight.js/lib/languages/css";
import javascript from "highlight.js/lib/languages/javascript";
import html from "highlight.js/lib/languages/xml";
hljs.registerLanguage("html", html);
hljs.registerLanguage("bash", bash);
+hljs.registerLanguage("css", css);
hljs.registerLanguage("javascript", javascript);
function on_mount() {
hljs.highlightAll();
for (const element of document.querySelectorAll("[data-theme-switcher]")) {
element.addEventListener("click", () => {
- document.documentElement.setAttribute(
- "data-theme",
- element.dataset.themeSwitcher,
- );
+ document.documentElement.style.colorScheme = element.dataset.themeSwitcher;
});
}
diff --git a/packages/main/src/_variables.scss b/packages/main/src/_variables.scss
index 9934234..8f4e7c4 100644
--- a/packages/main/src/_variables.scss
+++ b/packages/main/src/_variables.scss
@@ -1,25 +1,13 @@
-html {
- --border: #27272a;
- --color: #fafafa;
- --color-primary: #09090b;
- --color-secondary: #fafafa;
- --color-danger: #fafafa;
- --color-muted: #a1a1aa;
- --background: #09090b;
- --background-primary: #fafafa;
- --background-secondary: #27272a;
- --background-danger: #7f1d1d;
-
- &[data-theme="light"] {
- --border: #d4d4d8;
- --color: #09090b;
- --color-primary: #fafafa;
- --color-secondary: #09090b;
- --color-danger: #09090b;
- --color-muted: #71717a;
- --background: #fafafa;
- --background-primary: #09090b;
- --background-secondary: #e4e4e7;
- --background-danger: #fee2e2;
- }
+:root {
+ color-scheme: light dark;
+ --border: light-dark(#d4d4d8, #27272a);
+ --color: light-dark(#09090b, #fafafa);
+ --color-primary: light-dark(#fafafa, #09090b);
+ --color-secondary: light-dark(#09090b, #fafafa);
+ --color-danger: light-dark(#09090b, #fafafa);
+ --color-muted: light-dark(#71717a, #a1a1aa);
+ --background: light-dark(#fafafa, #09090b);
+ --background-primary: light-dark(#09090b, #fafafa);
+ --background-secondary: light-dark(#e4e4e7, #27272a);
+ --background-danger: light-dark(#fee2e2, #7f1d1d);
}
diff --git a/packages/main/src/compoments/_button.scss b/packages/main/src/compoments/_button.scss
index c34879f..c9d8cd2 100644
--- a/packages/main/src/compoments/_button.scss
+++ b/packages/main/src/compoments/_button.scss
@@ -20,12 +20,20 @@ button,
text-decoration: none;
white-space: nowrap;
- &.secondary {
+ &[aria-label*="cancel"],
+ &[aria-label*="back"],
+ &[aria-label*="close"],
+ &[type="reset"] {
background-color: var(--background-secondary);
color: var(--color-secondary);
}
- &.danger {
+ &[aria-label*="delete"],
+ &[aria-label*="remove"],
+ &[aria-label*="discard"],
+ &[aria-label*="erase"],
+ &[aria-label*="destroy"],
+ &[aria-label*="clear"] {
background-color: var(--background-danger);
color: var(--color-danger);
}
diff --git a/packages/main/src/compoments/_index.scss b/packages/main/src/compoments/_index.scss
index 976d7f9..1061e01 100644
--- a/packages/main/src/compoments/_index.scss
+++ b/packages/main/src/compoments/_index.scss
@@ -13,3 +13,4 @@
@use "table";
@use "form";
@use "blog";
+@use "tabs";
diff --git a/packages/main/src/compoments/_tabs.scss b/packages/main/src/compoments/_tabs.scss
new file mode 100644
index 0000000..85f74de
--- /dev/null
+++ b/packages/main/src/compoments/_tabs.scss
@@ -0,0 +1,25 @@
+[role="tablist"] {
+ display: flex;
+ gap: 0;
+ margin-bottom: 1rem;
+ border-radius: 0.75rem;
+ background: var(--background-secondary);
+ padding: 0.25rem;
+ width: 100%;
+}
+
+[role="tab"] {
+ flex: 1 1 0;
+ cursor: pointer;
+ border: none;
+ border-radius: 0.5rem;
+ background: none;
+ background: transparent;
+ padding: 0.75em 0;
+ color: var(--color-muted);
+
+ &[aria-selected="true"] {
+ background: var(--background-primary);
+ color: var(--color-primary);
+ }
+}