diff options
| author | Adam <[email protected]> | 2025-10-17 12:05:52 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-10-17 12:06:36 -0500 |
| commit | 887a819f2444c8454a43049983d831194883c6cd (patch) | |
| tree | 7247e5d619c6065a4b1c7d02c74366d43e7e3c05 /packages/ui/src/components/button.css | |
| parent | fe8b3a25155c0aaad20b506d0ba6fc6b8f2d0e5b (diff) | |
| download | opencode-887a819f2444c8454a43049983d831194883c6cd.tar.gz opencode-887a819f2444c8454a43049983d831194883c6cd.zip | |
wip: desktop work
Diffstat (limited to 'packages/ui/src/components/button.css')
| -rw-r--r-- | packages/ui/src/components/button.css | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/packages/ui/src/components/button.css b/packages/ui/src/components/button.css new file mode 100644 index 000000000..c9ccf4ecb --- /dev/null +++ b/packages/ui/src/components/button.css @@ -0,0 +1,106 @@ +[data-component="button"] { + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; + border-style: solid; + border-width: 1px; + border-radius: 6px; + text-decoration: none; + user-select: none; + + &[data-variant="primary"] { + border-color: var(--border-base); + background-color: var(--surface-brand-base); + color: var(--text-on-brand-strong); + + &:hover:not(:disabled) { + border-color: var(--border-hover); + background-color: var(--surface-brand-hover); + } + &:active:not(:disabled) { + border-color: var(--border-active); + background-color: var(--surface-brand-active); + } + &:focus:not(:disabled) { + border-color: var(--border-focus); + background-color: var(--surface-brand-focus); + } + } + + &[data-variant="secondary"] { + border-color: var(--border-weak-base); + background-color: var(--button-secondary-base); + color: var(--text-strong); + + /* shadow-xs */ + box-shadow: + 0 1px 2px -1px rgba(19, 16, 16, 0.04), + 0 1px 2px 0 rgba(19, 16, 16, 0.06), + 0 1px 3px 0 rgba(19, 16, 16, 0.08); + + &:hover:not(:disabled) { + border-color: var(--border-hover); + background-color: var(--surface-hover); + } + &:active:not(:disabled) { + border-color: var(--border-active); + background-color: var(--surface-active); + } + &:focus:not(:disabled) { + border-color: var(--border-focus); + background-color: var(--surface-focus); + } + } + + &[data-variant="ghost"] { + border-color: transparent; + background-color: transparent; + color: var(--text-strong); + + &:hover:not(:disabled) { + background-color: var(--surface-hover); + } + &:active:not(:disabled) { + border-color: var(--border-active); + background-color: var(--surface-active); + } + &:focus:not(:disabled) { + border-color: var(--border-focus); + background-color: var(--surface-focus); + } + } + + &[data-size="normal"] { + padding: 0 6px 0 6px; + + font-size: var(--font-size-small); + line-height: var(--line-height-large); + gap: calc(var(--spacing) * 0.5); + } + + &[data-size="large"] { + height: 32px; + padding: 0 8px 0 6px; + gap: 8px; + + /* text-12-medium */ + font-family: var(--font-family-sans); + font-size: var(--font-size-small); + font-style: normal; + font-weight: var(--font-weight-medium); + line-height: var(--line-height-large); /* 166.667% */ + letter-spacing: var(--letter-spacing-normal); + } + + &:disabled { + border-color: var(--border-disabled); + background-color: var(--surface-disabled); + color: var(--text-weak); + cursor: not-allowed; + } + + &:focus { + outline: none; + } +} |
