summaryrefslogtreecommitdiffhomepage
path: root/cloud/web/src/ui/style/component/button.css
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-08-08 13:22:54 -0400
committerFrank <[email protected]>2025-08-08 13:24:32 -0400
commit183e0911b76025a1f2a82e979d9834fec2131d0e (patch)
tree9987c1753bd64d1ce1d174ab397f1a8c681f642c /cloud/web/src/ui/style/component/button.css
parentc7bb19ad0712469063eab35589aa5d3602b0c5b1 (diff)
downloadopencode-183e0911b76025a1f2a82e979d9834fec2131d0e.tar.gz
opencode-183e0911b76025a1f2a82e979d9834fec2131d0e.zip
wip: gateway
Diffstat (limited to 'cloud/web/src/ui/style/component/button.css')
-rw-r--r--cloud/web/src/ui/style/component/button.css78
1 files changed, 78 insertions, 0 deletions
diff --git a/cloud/web/src/ui/style/component/button.css b/cloud/web/src/ui/style/component/button.css
new file mode 100644
index 000000000..9604f9865
--- /dev/null
+++ b/cloud/web/src/ui/style/component/button.css
@@ -0,0 +1,78 @@
+[data-component="button"] {
+ width: fit-content;
+ display: flex;
+ line-height: 1;
+ align-items: center;
+ justify-content: center;
+ gap: var(--space-2);
+ font-size: var(--font-size-md);
+ text-transform: uppercase;
+ height: var(--space-11);
+ outline: none;
+ font-weight: 500;
+ padding: 0 var(--space-4);
+ border-width: 2px;
+ border-color: var(--color-border);
+ cursor: pointer;
+
+ &:disabled {
+ opacity: 0.5;
+ cursor: default;
+ }
+
+ &[data-color="primary"] {
+ background-color: var(--color-text);
+ border-color: var(--color-text);
+ color: var(--color-text-invert);
+
+ &:active {
+ border-color: var(--color-accent);
+ }
+ }
+
+ &[data-color="secondary"] {
+ &:active {
+ border-color: var(--color-accent);
+ }
+ }
+
+ &[data-color="ghost"] {
+ border: none;
+ text-decoration: underline;
+
+ &:active {
+ color: var(--color-text-accent);
+ }
+ }
+
+ &:has([data-slot="icon"]) {
+ padding-left: var(--space-3);
+ padding-right: var(--space-3);
+ }
+
+ &[data-size="sm"] {
+ height: var(--space-8);
+ padding: var(--space-3);
+ font-size: var(--font-size-xs);
+
+ [data-slot="icon"] {
+ width: var(--space-3-5);
+ height: var(--space-3-5);
+ }
+
+ &:has([data-slot="icon"]) {
+ padding-left: var(--space-2);
+ padding-right: var(--space-2);
+ }
+ }
+
+ [data-slot="icon"] {
+ width: var(--space-4);
+ height: var(--space-4);
+ transition: transform 0.2s ease;
+ }
+
+ &[data-rotate] [data-slot="icon"] {
+ transform: rotate(180deg);
+ }
+}