@owodesign/owoui 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +23 -9
  2. package/dist/index.css +4 -0
  3. package/dist/index.d.ts +40 -20
  4. package/dist/index.min.js +1 -1
  5. package/{src → dist}/preset-default.css +5 -2
  6. package/{src → dist}/preset-elevated.css +5 -2
  7. package/{src → dist}/preset-flat.css +5 -2
  8. package/{src → dist}/preset-glass.css +5 -2
  9. package/dist/storybook/index.css +4 -0
  10. package/dist/storybook/index.min.js +87 -14
  11. package/dist/storybook-static/app.css +402 -4054
  12. package/dist/storybook-static/assets/main.css +1 -2
  13. package/dist/storybook-static/assets/main.js +93 -21
  14. package/dist/style.css +355 -0
  15. package/{src → dist}/theme-dark.css +5 -5
  16. package/{src → dist}/theme-light.css +5 -6
  17. package/{src/styles → dist}/tokens.css +44 -97
  18. package/dist/tokens.d.ts +6 -3
  19. package/dist/tokens.min.js +1 -1
  20. package/package.json +39 -34
  21. package/src/style.css +0 -22
  22. package/src/styles/ui/avatar.css +0 -13
  23. package/src/styles/ui/badge.css +0 -52
  24. package/src/styles/ui/button.css +0 -49
  25. package/src/styles/ui/collapsible.css +0 -13
  26. package/src/styles/ui/dialog.css +0 -37
  27. package/src/styles/ui/drawer.css +0 -15
  28. package/src/styles/ui/dropdown-menu.css +0 -132
  29. package/src/styles/ui/field.css +0 -12
  30. package/src/styles/ui/icon-button.css +0 -29
  31. package/src/styles/ui/input.css +0 -16
  32. package/src/styles/ui/panel.css +0 -23
  33. package/src/styles/ui/segmented-control.css +0 -28
  34. package/src/styles/ui/select.css +0 -52
  35. package/src/styles/ui/skeleton.css +0 -99
  36. package/src/styles/ui/status-notice.css +0 -49
  37. package/src/styles/ui/switch.css +0 -17
  38. package/src/styles/ui/tabs.css +0 -33
  39. package/src/styles/ui/textarea.css +0 -8
  40. package/src/styles/ui/toast.css +0 -57
  41. package/src/styles/ui/tooltip.css +0 -31
  42. package/src/tokens.css +0 -1
@@ -1,132 +0,0 @@
1
- .owo-dropdown-menu__content {
2
- min-width: 12rem;
3
- overflow-y: auto;
4
- border: 1px solid var(--owo-cmp-surface-border);
5
- border-radius: var(--owo-cmp-control-radius-lg);
6
- background: var(--owo-cmp-surface-bg-raised);
7
- box-shadow: var(--_owo-dropdown-menu-shadow, var(--owo-cmp-surface-shadow-strong));
8
- padding: 0.375rem;
9
- color: var(--owo-cmp-text-primary);
10
- outline: none;
11
- z-index: var(--owo-cmp-z-dropdown);
12
- animation: owo-dropdown-menu-in var(--owo-cmp-motion-duration-fast) var(--owo-cmp-motion-ease-standard);
13
- }
14
-
15
- .owo-dropdown-menu__content[data-side="top"] {
16
- transform-origin: bottom center;
17
- }
18
-
19
- .owo-dropdown-menu__content[data-side="bottom"] {
20
- transform-origin: top center;
21
- }
22
-
23
- .owo-dropdown-menu__content[data-side="left"] {
24
- transform-origin: center right;
25
- }
26
-
27
- .owo-dropdown-menu__content[data-side="right"] {
28
- transform-origin: center left;
29
- }
30
-
31
- .owo-dropdown-menu__group + .owo-dropdown-menu__group {
32
- margin-top: 0.375rem;
33
- padding-top: 0.375rem;
34
- border-top: 1px solid color-mix(in srgb, var(--owo-cmp-surface-border) 80%, transparent);
35
- }
36
-
37
- .owo-dropdown-menu__label {
38
- padding: 0.35rem 0.625rem 0.25rem;
39
- font-size: 0.675rem;
40
- font-weight: 700;
41
- letter-spacing: 0.12em;
42
- text-transform: uppercase;
43
- color: var(--owo-cmp-text-muted);
44
- }
45
-
46
- .owo-dropdown-menu__separator {
47
- margin: 0.375rem 0.25rem;
48
- border-top: 1px solid color-mix(in srgb, var(--owo-cmp-surface-border) 82%, transparent);
49
- }
50
-
51
- .owo-dropdown-menu__item {
52
- display: flex;
53
- width: 100%;
54
- align-items: center;
55
- gap: 0.75rem;
56
- border: 0;
57
- border-radius: calc(var(--owo-cmp-control-radius-md) - 0.125rem);
58
- background: transparent;
59
- padding: 0.625rem 0.75rem;
60
- text-align: left;
61
- color: inherit;
62
- cursor: default;
63
- transition:
64
- background-color var(--owo-cmp-motion-duration-fast) var(--owo-cmp-motion-ease-standard),
65
- color var(--owo-cmp-motion-duration-fast) var(--owo-cmp-motion-ease-standard);
66
- }
67
-
68
- .owo-dropdown-menu__item:hover,
69
- .owo-dropdown-menu__item[data-highlighted] {
70
- background: var(--owo-cmp-surface-bg-inset);
71
- }
72
-
73
- .owo-dropdown-menu__item[data-selected] {
74
- background: color-mix(in srgb, var(--owo-cmp-accent-bg) 10%, var(--owo-cmp-surface-bg-raised));
75
- }
76
-
77
- .owo-dropdown-menu__item[data-selected] .owo-dropdown-menu__item-main {
78
- color: var(--owo-cmp-text-primary);
79
- font-weight: 600;
80
- }
81
-
82
- .owo-dropdown-menu__item[data-disabled] {
83
- opacity: 0.5;
84
- cursor: not-allowed;
85
- }
86
-
87
- .owo-dropdown-menu__item[data-destructive] {
88
- color: var(--owo-cmp-danger-text);
89
- }
90
-
91
- .owo-dropdown-menu__item--inset {
92
- padding-left: 1rem;
93
- }
94
-
95
- .owo-dropdown-menu__item-main {
96
- min-width: 0;
97
- flex: 1 1 auto;
98
- overflow: hidden;
99
- text-overflow: ellipsis;
100
- white-space: nowrap;
101
- }
102
-
103
- .owo-dropdown-menu__shortcut,
104
- .owo-dropdown-menu__indicator,
105
- .owo-dropdown-menu__submenu-indicator {
106
- flex: 0 0 auto;
107
- color: var(--owo-cmp-text-muted);
108
- font-size: 0.75rem;
109
- }
110
-
111
- .owo-dropdown-menu__indicator {
112
- min-width: 1rem;
113
- text-align: center;
114
- color: var(--owo-cmp-accent-bg);
115
- font-weight: 700;
116
- }
117
-
118
- .owo-dropdown-menu__sub-trigger[data-state="open"] {
119
- background: var(--owo-cmp-surface-bg-inset);
120
- }
121
-
122
- @keyframes owo-dropdown-menu-in {
123
- from {
124
- opacity: 0;
125
- transform: scale(0.98);
126
- }
127
-
128
- to {
129
- opacity: 1;
130
- transform: scale(1);
131
- }
132
- }
@@ -1,12 +0,0 @@
1
- .owo-field {
2
- --field-label: var(--owo-cmp-text-secondary);
3
- --field-help: var(--owo-cmp-text-muted);
4
- }
5
-
6
- .owo-field__label {
7
- color: var(--field-label);
8
- }
9
-
10
- .owo-field__help {
11
- color: var(--field-help);
12
- }
@@ -1,29 +0,0 @@
1
- .owo-icon-button {
2
- --icon-button-bg: transparent;
3
- --icon-button-bg-hover: var(--owo-cmp-surface-bg-inset);
4
- --icon-button-bg-active: var(--owo-cmp-surface-bg-subtle);
5
- --icon-button-text: var(--owo-cmp-text-muted);
6
- --icon-button-ring: var(--owo-cmp-control-focus-ring);
7
- background: var(--icon-button-bg);
8
- color: var(--icon-button-text);
9
- }
10
-
11
- .owo-icon-button:hover {
12
- background: var(--icon-button-bg-hover);
13
- color: var(--owo-cmp-text-primary);
14
- }
15
-
16
- .owo-icon-button:active {
17
- background: var(--icon-button-bg-active);
18
- }
19
-
20
- .owo-icon-button:focus-visible {
21
- --tw-ring-color: var(--icon-button-ring);
22
- }
23
-
24
- .owo-icon-button[data-variant="subtle"] {
25
- --icon-button-bg: var(--owo-cmp-surface-bg-inset);
26
- --icon-button-bg-hover: var(--owo-cmp-surface-bg-subtle);
27
- --icon-button-bg-active: var(--owo-cmp-surface-bg-raised);
28
- --icon-button-text: var(--owo-cmp-text-primary);
29
- }
@@ -1,16 +0,0 @@
1
- .owo-input {
2
- --field-bg: var(--owo-cmp-surface-bg);
3
- --field-border: var(--owo-cmp-surface-border);
4
- --field-text: var(--owo-cmp-text-primary);
5
- --field-placeholder: var(--owo-cmp-text-muted);
6
- --field-ring: var(--owo-cmp-control-focus-ring);
7
- background: var(--field-bg);
8
- border: 1px solid var(--field-border);
9
- color: var(--field-text);
10
- --tw-ring-color: var(--field-ring);
11
- }
12
-
13
- .owo-input[data-tone="warning"] {
14
- --field-border: var(--owo-cmp-warning-border);
15
- --field-ring: var(--owo-cmp-warning-border);
16
- }
@@ -1,23 +0,0 @@
1
- .owo-panel {
2
- --panel-bg: var(--owo-cmp-surface-bg);
3
- --panel-border: var(--owo-cmp-surface-border);
4
- --panel-section-border: var(--owo-cmp-surface-border);
5
- --panel-shadow: none;
6
- background: var(--panel-bg);
7
- border-color: var(--panel-border);
8
- box-shadow: var(--panel-shadow);
9
- }
10
-
11
- .owo-panel-header,
12
- .owo-panel-footer {
13
- border-color: var(--panel-section-border);
14
- }
15
-
16
- .owo-panel[data-variant="subtle"] {
17
- --panel-bg: var(--owo-cmp-surface-bg-subtle);
18
- }
19
-
20
- .owo-panel[data-variant="raised"] {
21
- --panel-bg: var(--owo-cmp-surface-bg-raised);
22
- --panel-shadow: var(--owo-cmp-surface-shadow);
23
- }
@@ -1,28 +0,0 @@
1
- .owo-segmented-control {
2
- --segmented-bg: var(--owo-cmp-surface-bg-inset);
3
- --segmented-border: var(--owo-cmp-surface-border);
4
- --segmented-item-text: var(--owo-cmp-text-muted);
5
- --segmented-item-hover-text: var(--owo-cmp-text-secondary);
6
- --segmented-item-active-bg: var(--owo-cmp-surface-bg-raised);
7
- --segmented-item-active-text: var(--owo-cmp-text-primary);
8
- --segmented-ring: var(--owo-cmp-control-focus-ring);
9
- background: var(--segmented-bg);
10
- --tw-ring-color: var(--segmented-border);
11
- }
12
-
13
- .owo-segmented-control__item {
14
- color: var(--segmented-item-text);
15
- }
16
-
17
- .owo-segmented-control__item:hover {
18
- color: var(--segmented-item-hover-text);
19
- }
20
-
21
- .owo-segmented-control__item[data-active="true"] {
22
- background: var(--segmented-item-active-bg);
23
- color: var(--segmented-item-active-text);
24
- }
25
-
26
- .owo-segmented-control__item:focus-visible {
27
- --tw-ring-color: var(--segmented-ring);
28
- }
@@ -1,52 +0,0 @@
1
- .owo-select__trigger {
2
- --select-bg: var(--owo-cmp-surface-bg);
3
- --select-border: var(--owo-cmp-surface-border);
4
- --select-text: var(--owo-cmp-text-primary);
5
- --select-ring: var(--owo-cmp-control-focus-ring);
6
-
7
- background: var(--select-bg);
8
- border: 0.5px solid var(--select-border);
9
- color: var(--select-text);
10
- --tw-ring-color: var(--select-ring);
11
- }
12
-
13
- .owo-select__trigger:hover:not(:disabled) {
14
- --select-border: var(--owo-cmp-surface-border-strong);
15
- }
16
-
17
- .owo-select__trigger[data-open] {
18
- --select-border: var(--owo-cmp-surface-border-strong);
19
- }
20
-
21
- .owo-select__trigger[data-tone="warning"] {
22
- --select-border: var(--owo-cmp-warning-border);
23
- --select-ring: var(--owo-cmp-warning-border);
24
- }
25
-
26
- .owo-select__trigger:disabled {
27
- cursor: not-allowed;
28
- opacity: 0.5;
29
- }
30
-
31
- .owo-select__placeholder {
32
- color: var(--owo-cmp-text-muted);
33
- }
34
-
35
- .owo-select__chevron {
36
- color: var(--owo-cmp-text-muted);
37
- }
38
-
39
- .owo-select__dropdown {
40
- background: var(--owo-cmp-surface-bg-raised);
41
- --tw-ring-color: var(--owo-cmp-surface-border);
42
- box-shadow: var(--select-dropdown-shadow);
43
- }
44
-
45
- .owo-select__option[data-focused] {
46
- background: var(--owo-cmp-surface-bg-inset);
47
- }
48
-
49
- .owo-select__option[data-selected] {
50
- color: var(--owo-cmp-accent-bg);
51
- font-weight: 500;
52
- }
@@ -1,99 +0,0 @@
1
- .owo-skeleton {
2
- --_owo-skeleton-scan-duration: 3.6s;
3
- position: relative;
4
- overflow: hidden;
5
- background: var(--skeleton-bg);
6
- box-shadow: inset 0 1px 0 var(--skeleton-top-highlight);
7
- transform: translateZ(0);
8
- }
9
-
10
- .owo-skeleton[data-tone='emphasis'] {
11
- background: var(--skeleton-bg-emphasis);
12
- }
13
-
14
- .owo-skeleton::before {
15
- content: "";
16
- position: absolute;
17
- inset: 0;
18
- background: inherit;
19
- opacity: 0.84;
20
- }
21
-
22
- .owo-skeleton::after {
23
- content: "";
24
- position: absolute;
25
- inset: -35%;
26
- background: var(--skeleton-sheen);
27
- transform: translateX(-140%) skewX(-14deg);
28
- opacity: 0;
29
- will-change: transform, opacity;
30
- }
31
-
32
- .owo-skeleton[data-animation='pulse']::after {
33
- display: none;
34
- }
35
-
36
- .owo-skeleton[data-animation='pulse']::before {
37
- animation: owo-skeleton-breathe 2.6s var(--owo-cmp-motion-ease-standard) infinite;
38
- }
39
-
40
- .owo-skeleton[data-animation='scan']::before {
41
- opacity: 1;
42
- filter: none;
43
- }
44
-
45
- .owo-skeleton[data-animation='scan']::after {
46
- opacity: 1;
47
- animation: owo-skeleton-scan var(--_owo-skeleton-scan-duration) cubic-bezier(0.3, 0, 0.2, 1) infinite;
48
- }
49
-
50
- @keyframes owo-skeleton-breathe {
51
- 0%,
52
- 100% {
53
- opacity: 0.8;
54
- filter: saturate(0.96) brightness(0.98);
55
- }
56
-
57
- 50% {
58
- opacity: 1;
59
- filter: saturate(1.04) brightness(1.04);
60
- }
61
- }
62
-
63
- @keyframes owo-skeleton-scan {
64
- 0% {
65
- transform: translateX(-140%) skewX(-14deg);
66
- opacity: 0;
67
- }
68
-
69
- 18% {
70
- opacity: 0.82;
71
- }
72
-
73
- 52% {
74
- transform: translateX(6%) skewX(-14deg);
75
- opacity: 1;
76
- }
77
-
78
- 82% {
79
- opacity: 0.82;
80
- }
81
-
82
- 100% {
83
- transform: translateX(140%) skewX(-14deg);
84
- opacity: 0;
85
- }
86
- }
87
-
88
- @media (prefers-reduced-motion: reduce) {
89
- .owo-skeleton::before {
90
- animation: none;
91
- opacity: 0.94;
92
- filter: none;
93
- }
94
-
95
- .owo-skeleton::after {
96
- animation: none;
97
- opacity: 0;
98
- }
99
- }
@@ -1,49 +0,0 @@
1
- .owo-status-notice {
2
- --status-notice-bg: var(--feedback-neutral-bg);
3
- --status-notice-border: var(--feedback-neutral-border);
4
- --status-notice-text: var(--feedback-neutral-text);
5
- --status-notice-icon: var(--feedback-neutral-icon);
6
- background: var(--status-notice-bg);
7
- border-color: var(--status-notice-border);
8
- color: var(--status-notice-text);
9
- }
10
-
11
- .owo-status-notice__icon {
12
- color: var(--status-notice-icon);
13
- }
14
-
15
- .owo-status-notice__title {
16
- color: var(--owo-cmp-text-primary);
17
- }
18
-
19
- .owo-status-notice[data-layout="vertical"] .owo-status-notice__title {
20
- color: var(--status-notice-text);
21
- }
22
-
23
- .owo-status-notice[data-tone="info"] {
24
- --status-notice-bg: var(--feedback-info-bg);
25
- --status-notice-border: var(--feedback-info-border);
26
- --status-notice-text: var(--feedback-info-text);
27
- --status-notice-icon: var(--feedback-info-icon);
28
- }
29
-
30
- .owo-status-notice[data-tone="success"] {
31
- --status-notice-bg: var(--feedback-success-bg);
32
- --status-notice-border: var(--feedback-success-border);
33
- --status-notice-text: var(--feedback-success-text);
34
- --status-notice-icon: var(--feedback-success-icon);
35
- }
36
-
37
- .owo-status-notice[data-tone="warning"] {
38
- --status-notice-bg: var(--feedback-warning-bg);
39
- --status-notice-border: var(--feedback-warning-border);
40
- --status-notice-text: var(--feedback-warning-text);
41
- --status-notice-icon: var(--feedback-warning-icon);
42
- }
43
-
44
- .owo-status-notice[data-tone="danger"] {
45
- --status-notice-bg: var(--feedback-danger-bg);
46
- --status-notice-border: var(--feedback-danger-border);
47
- --status-notice-text: var(--feedback-danger-text);
48
- --status-notice-icon: var(--feedback-danger-icon);
49
- }
@@ -1,17 +0,0 @@
1
- .owo-switch {
2
- background: var(--owo-cmp-surface-border-strong);
3
- --tw-ring-color: var(--owo-cmp-control-focus-ring);
4
- --tw-ring-offset-color: var(--owo-cmp-surface-bg);
5
- }
6
-
7
- .owo-switch[aria-checked="true"] {
8
- background: var(--owo-cmp-accent-bg);
9
- }
10
-
11
- .owo-switch:hover:not(:disabled) {
12
- background: color-mix(in srgb, var(--owo-cmp-surface-border-strong) 82%, var(--owo-cmp-text-muted));
13
- }
14
-
15
- .owo-switch[aria-checked="true"]:hover:not(:disabled) {
16
- background: var(--owo-cmp-accent-bg-hover);
17
- }
@@ -1,33 +0,0 @@
1
- .owo-tabs__list {
2
- --tabs-border: var(--owo-cmp-surface-border);
3
- border-color: var(--tabs-border);
4
- }
5
-
6
- .owo-tabs__trigger {
7
- --tabs-text: var(--owo-cmp-text-muted);
8
- --tabs-hover-text: var(--owo-cmp-text-secondary);
9
- --tabs-active-text: var(--owo-cmp-text-primary);
10
- --tabs-active-border: var(--owo-cmp-accent-border);
11
- --tabs-active-bg: color-mix(in srgb, var(--owo-cmp-accent-bg-muted) 35%, transparent);
12
- --tabs-ring: var(--owo-cmp-control-focus-ring);
13
- border-bottom-color: transparent;
14
- color: var(--tabs-text);
15
- }
16
-
17
- .owo-tabs__trigger:hover {
18
- color: var(--tabs-hover-text);
19
- }
20
-
21
- .owo-tabs__trigger[data-state="active"] {
22
- background: var(--tabs-active-bg);
23
- border-bottom-color: var(--tabs-active-border);
24
- color: var(--tabs-active-text);
25
- }
26
-
27
- .owo-tabs__trigger:focus-visible {
28
- --tw-ring-color: var(--tabs-ring);
29
- }
30
-
31
- .owo-tabs__content {
32
- color: var(--owo-cmp-text-primary);
33
- }
@@ -1,8 +0,0 @@
1
- .owo-textarea {
2
- min-height: calc(1.5em * 3 + 1rem);
3
- line-height: 1.5;
4
- }
5
-
6
- .owo-textarea[data-auto-resize="true"] {
7
- overflow-y: hidden;
8
- }
@@ -1,57 +0,0 @@
1
- .owo-toast {
2
- --toast-bg: var(--feedback-neutral-bg);
3
- --toast-border: var(--feedback-neutral-border);
4
- --toast-text: var(--feedback-neutral-text);
5
- --toast-icon: var(--feedback-neutral-icon);
6
- background: var(--toast-bg);
7
- border-color: var(--toast-border);
8
- color: var(--toast-text);
9
- box-shadow: var(--toast-shadow, var(--owo-cmp-surface-shadow-strong));
10
- }
11
-
12
- .owo-toast__icon {
13
- color: var(--toast-icon);
14
- }
15
-
16
- .owo-toast__title {
17
- color: inherit;
18
- }
19
-
20
- .owo-toast[data-tone="success"] {
21
- --toast-bg: var(--feedback-success-bg);
22
- --toast-border: var(--feedback-success-border);
23
- --toast-text: var(--feedback-success-text);
24
- --toast-icon: var(--feedback-success-icon);
25
- }
26
-
27
- .owo-toast[data-tone="warning"] {
28
- --toast-bg: var(--feedback-warning-bg);
29
- --toast-border: var(--feedback-warning-border);
30
- --toast-text: var(--feedback-warning-text);
31
- --toast-icon: var(--feedback-warning-icon);
32
- }
33
-
34
- .owo-toast[data-tone="danger"] {
35
- --toast-bg: var(--feedback-danger-bg);
36
- --toast-border: var(--feedback-danger-border);
37
- --toast-text: var(--feedback-danger-text);
38
- --toast-icon: var(--feedback-danger-icon);
39
- }
40
-
41
- .owo-toast[data-tone="info"] {
42
- --toast-bg: var(--feedback-info-bg);
43
- --toast-border: var(--feedback-info-border);
44
- --toast-text: var(--feedback-info-text);
45
- --toast-icon: var(--feedback-info-icon);
46
- }
47
-
48
- @keyframes toast-in {
49
- from {
50
- opacity: 0;
51
- transform: translateY(8px) scale(0.96);
52
- }
53
- to {
54
- opacity: 1;
55
- transform: translateY(0) scale(1);
56
- }
57
- }
@@ -1,31 +0,0 @@
1
- .owo-tooltip {
2
- --tooltip-bg: var(--owo-cmp-surface-bg-raised);
3
- --tooltip-border: var(--owo-cmp-surface-border);
4
- --tooltip-text: var(--owo-cmp-text-primary);
5
- --tooltip-arrow-color: var(--tooltip-bg);
6
- background: var(--tooltip-bg);
7
- color: var(--tooltip-text);
8
- border: 1px solid var(--tooltip-border);
9
- box-shadow:
10
- 0 0 0 1px color-mix(in srgb, var(--tooltip-border) 55%, transparent),
11
- var(--tooltip-shadow);
12
- backdrop-filter: blur(10px);
13
- }
14
-
15
- .owo-tooltip__arrow {
16
- color: var(--tooltip-arrow-color);
17
- filter:
18
- drop-shadow(0 1px 0 var(--tooltip-border))
19
- drop-shadow(0 0 0.5px color-mix(in srgb, var(--tooltip-border) 55%, transparent));
20
- }
21
-
22
- @keyframes tooltip-in {
23
- from {
24
- opacity: 0;
25
- transform: scale(0.96);
26
- }
27
- to {
28
- opacity: 1;
29
- transform: scale(1);
30
- }
31
- }
package/src/tokens.css DELETED
@@ -1 +0,0 @@
1
- @import "./styles/tokens.css";