material 0.9.25 → 0.9.26

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 (118) hide show
  1. package/package.json +1 -1
  2. package/src/skin/material/base/body.scss +83 -0
  3. package/src/skin/material/base/{elevation.sass → elevation.scss} +76 -50
  4. package/src/skin/material/base/{grid.sass → grid.scss} +44 -32
  5. package/src/skin/material/base/typo.scss +133 -0
  6. package/src/skin/material/button/action.scss +124 -0
  7. package/src/skin/material/button/button.scss +245 -0
  8. package/src/skin/material/button/file.scss +27 -0
  9. package/src/skin/material/button/floating.scss +160 -0
  10. package/src/skin/material/button/raised.scss +145 -0
  11. package/src/skin/material/button/stroked.scss +102 -0
  12. package/src/skin/material/component/component.scss +11 -0
  13. package/src/skin/material/component/divider.scss +22 -0
  14. package/src/skin/material/component/image.scss +9 -0
  15. package/src/skin/material/component/label.scss +4 -0
  16. package/src/skin/material/component/navigation.scss +15 -0
  17. package/src/skin/material/component/progress.scss +176 -0
  18. package/src/skin/material/component/subheader.scss +5 -0
  19. package/src/skin/material/component/text.scss +101 -0
  20. package/src/skin/material/container/appbar.scss +215 -0
  21. package/src/skin/material/container/banner.scss +44 -0
  22. package/src/skin/material/container/card.scss +23 -0
  23. package/src/skin/material/container/container.scss +2 -0
  24. package/src/skin/material/container/dialog.scss +196 -0
  25. package/src/skin/material/container/drawer.scss +185 -0
  26. package/src/skin/material/container/menu.scss +69 -0
  27. package/src/skin/material/container/snackbar.scss +21 -0
  28. package/src/skin/material/container/tabs.scss +94 -0
  29. package/src/skin/material/container/toolbar.scss +207 -0
  30. package/src/skin/material/control/button.scss +172 -0
  31. package/src/skin/material/control/checkbox.scss +134 -0
  32. package/src/skin/material/control/colorpicker.scss +220 -0
  33. package/src/skin/material/control/menu.scss +25 -0
  34. package/src/skin/material/control/progress.scss +174 -0
  35. package/src/skin/material/control/search.scss +50 -0
  36. package/src/skin/material/control/selecter.scss +152 -0
  37. package/src/skin/material/control/selector.scss +46 -0
  38. package/src/skin/material/control/slider.scss +221 -0
  39. package/src/skin/material/control/snackbar.scss +77 -0
  40. package/src/skin/material/control/switch.scss +349 -0
  41. package/src/skin/material/control/switcher.scss +48 -0
  42. package/src/skin/material/control/textfield.scss +159 -0
  43. package/src/skin/material/control/tooltip.scss +42 -0
  44. package/src/skin/material/layout/layout.scss +92 -0
  45. package/src/skin/material/layout/resizer.scss +97 -0
  46. package/src/skin/material/material.scss +67 -0
  47. package/src/skin/material/module/ripple.scss +11 -0
  48. package/src/skin/material/theme/{default.sass → default.scss} +18 -17
  49. package/src/skin/material/theme/ocean.scss +30 -0
  50. package/src/skin/material/theme/theme.scss +4 -0
  51. package/src/skin/material/view/calendar.scss +219 -0
  52. package/src/skin/material/view/form.scss +21 -0
  53. package/src/skin/material/view/grid.scss +134 -0
  54. package/src/skin/material/view/list.scss +107 -0
  55. package/src/skin/material/view/listview.scss +221 -0
  56. package/src/skin/material/view/map.scss +8 -0
  57. package/src/skin/material/view/page.scss +5 -0
  58. package/src/skin/material/view/tabview-bak.scss +49 -0
  59. package/src/skin/material/view/tabview.scss +65 -0
  60. package/src/skin/material/view/tree.scss +85 -0
  61. package/src/skin/material/view/{view.sass → view.scss} +1 -0
  62. package/src/skin/material/base/body.sass +0 -55
  63. package/src/skin/material/base/typo.sass +0 -107
  64. package/src/skin/material/button/action.sass +0 -89
  65. package/src/skin/material/button/button.sass +0 -183
  66. package/src/skin/material/button/file.sass +0 -24
  67. package/src/skin/material/button/floating.sass +0 -113
  68. package/src/skin/material/button/raised.sass +0 -101
  69. package/src/skin/material/button/stroked.sass +0 -71
  70. package/src/skin/material/component/component.sass +0 -7
  71. package/src/skin/material/component/divider.sass +0 -17
  72. package/src/skin/material/component/image.sass +0 -6
  73. package/src/skin/material/component/label.sass +0 -2
  74. package/src/skin/material/component/navigation.sass +0 -13
  75. package/src/skin/material/component/progress.sass +0 -138
  76. package/src/skin/material/component/subheader.sass +0 -3
  77. package/src/skin/material/component/text.sass +0 -85
  78. package/src/skin/material/container/appbar.sass +0 -167
  79. package/src/skin/material/container/banner.sass +0 -38
  80. package/src/skin/material/container/card.sass +0 -19
  81. package/src/skin/material/container/dialog.sass +0 -172
  82. package/src/skin/material/container/drawer.sass +0 -159
  83. package/src/skin/material/container/menu.sass +0 -58
  84. package/src/skin/material/container/snackbar.sass +0 -18
  85. package/src/skin/material/container/tabs.sass +0 -75
  86. package/src/skin/material/container/toolbar.sass +0 -161
  87. package/src/skin/material/control/button.sass +0 -135
  88. package/src/skin/material/control/checkbox.sass +0 -105
  89. package/src/skin/material/control/colorpicker.sass +0 -188
  90. package/src/skin/material/control/dialog.sass +0 -0
  91. package/src/skin/material/control/menu.sass +0 -18
  92. package/src/skin/material/control/progress.sass +0 -136
  93. package/src/skin/material/control/search.sass +0 -40
  94. package/src/skin/material/control/selecter.sass +0 -131
  95. package/src/skin/material/control/selector.sass +0 -38
  96. package/src/skin/material/control/slider.sass +0 -181
  97. package/src/skin/material/control/snackbar.sass +0 -65
  98. package/src/skin/material/control/switch.sass +0 -284
  99. package/src/skin/material/control/switcher.sass +0 -41
  100. package/src/skin/material/control/textfield.sass +0 -126
  101. package/src/skin/material/control/tooltip.sass +0 -36
  102. package/src/skin/material/layout/layout.sass +0 -69
  103. package/src/skin/material/layout/resizer.sass +0 -69
  104. package/src/skin/material/material.sass +0 -66
  105. package/src/skin/material/module/ripple.sass +0 -9
  106. package/src/skin/material/theme/ocean.sass +0 -29
  107. package/src/skin/material/theme/theme.sass +0 -3
  108. package/src/skin/material/view/calendar.sass +0 -193
  109. package/src/skin/material/view/form.sass +0 -15
  110. package/src/skin/material/view/grid.sass +0 -116
  111. package/src/skin/material/view/list.sass +0 -87
  112. package/src/skin/material/view/listview.sass +0 -195
  113. package/src/skin/material/view/map.sass +0 -6
  114. package/src/skin/material/view/page.sass +0 -4
  115. package/src/skin/material/view/tabview-bak.sass +0 -40
  116. package/src/skin/material/view/tabview.sass +0 -55
  117. package/src/skin/material/view/tree.sass +0 -73
  118. /package/src/skin/material/{container/container.sass → control/dialog.scss} +0 -0
@@ -0,0 +1,207 @@
1
+ .material-toolbar {
2
+ display: flex;
3
+ flex-direction: row;
4
+ //height: 64px
5
+
6
+ // position: absolute
7
+ // top: 0
8
+ // left: 0
9
+ // right: 0
10
+
11
+ z-index: 3;
12
+ flex: none;
13
+ display: flex;
14
+ flex-direction: row;
15
+ flex-wrap: nowrap;
16
+ //padding: 14px 16px
17
+
18
+ &.type-app {
19
+ z-index: 5;
20
+ padding: 14px 16px;
21
+ position: fixed;
22
+ &.is-flexible {
23
+ position: fixed;
24
+ }
25
+ &.is-scrolled {
26
+ transition: box-shadow .3s;
27
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.14),0 4px 8px rgba(0, 0, 0, 0.28);
28
+
29
+
30
+ }
31
+ }
32
+ &.is-flexible {
33
+ position: absolute;
34
+ top: 0;
35
+ left: 0;
36
+ right: 0;
37
+ //display: block
38
+
39
+ }
40
+ &.is-fixed {
41
+ position: absolute;
42
+ top: 0;
43
+ left: 0;
44
+ right: 0;
45
+ //display: block
46
+ &.is-scrolled {
47
+ transition: box-shadow .3s;
48
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.14),0 4px 8px rgba(0, 0, 0, 0.28);
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+ }
58
+ }
59
+ > * {
60
+ &:first-child {
61
+ margin-left: 0;
62
+
63
+ }
64
+ &:last-child {
65
+ margin-right: 0;
66
+
67
+
68
+ }
69
+ }
70
+ .material-text {
71
+ flex: 1;
72
+ display: inline-block;
73
+ font-size: 1.3rem;
74
+ font-weight: 300;
75
+ line-height: 2.3rem;
76
+ //color: $primary-color-text
77
+ padding: 0;
78
+ margin-left: 16px;
79
+ overflow: hidden;
80
+ white-space: nowrap;
81
+ text-overflow: ellipsis;
82
+
83
+ }
84
+ .material-checkbox {
85
+ padding: 0;
86
+ .checkbox-control {
87
+ height: 36px;
88
+ width: 36px;
89
+ margin: 0;
90
+ .checkbox-icon {
91
+ border: 2px solid rgba(255, 255, 255, 0.95);
92
+ }
93
+ }
94
+ .checkbox-label {
95
+ color: $primary-color-text;
96
+ padding: 10px 0 6px;
97
+
98
+
99
+
100
+ }
101
+ }
102
+ .material-button {
103
+ .button-icon {
104
+ svg {
105
+ fill: $default-color-icon;
106
+
107
+
108
+ }
109
+ }
110
+ }
111
+ &.transparent-color {
112
+ background-color: transparent;
113
+ .material-text {
114
+ color: $default-color-text;
115
+ }
116
+ .material-button {
117
+ .button-icon {
118
+ svg {
119
+ fill: $default-color-text;
120
+ }
121
+ }
122
+ }
123
+ .material-checkbox {
124
+ padding: 0;
125
+ .checkbox-control {
126
+ height: 36px;
127
+ width: 36px;
128
+ margin: 0;
129
+ .checkbox-icon {
130
+ border: 2px solid rgba(255, 255, 255, 0.95);
131
+ }
132
+ }
133
+ .checkbox-label {
134
+ color: $default-color-text;
135
+ padding: 10px 0 6px;
136
+
137
+ }
138
+ }
139
+ }
140
+ &.primary-color {
141
+ background-color: $primary-color;
142
+ .material-text {
143
+ color: $primary-color-text;
144
+ }
145
+ .material-button {
146
+ .button-icon {
147
+ svg {
148
+ fill: $primary-color-text;
149
+ }
150
+ }
151
+ }
152
+ .material-checkbox {
153
+ padding: 0;
154
+ .checkbox-control {
155
+ height: 36px;
156
+ width: 36px;
157
+ margin: 0;
158
+ .checkbox-icon {
159
+ border: 2px solid rgba(255, 255, 255, 0.95);
160
+ }
161
+ }
162
+ .checkbox-label {
163
+ color: $primary-color-text;
164
+ padding: 10px 0 6px;
165
+
166
+ }
167
+ }
168
+ }
169
+ &.secondary-color {
170
+ background-color: $secondary-color;
171
+ .material-text {
172
+ color: $secondary-color-text;
173
+ }
174
+ .material-button {
175
+ .button-icon {
176
+ svg {
177
+ fill: $secondary-color-text;
178
+ }
179
+ }
180
+ }
181
+ .material-checkbox {
182
+ padding: 0;
183
+ .checkbox-control {
184
+ height: 36px;
185
+ width: 36px;
186
+ margin: 0;
187
+ .checkbox-icon {
188
+ border: 2px solid rgba(255, 255, 255, 0.95);
189
+ }
190
+ }
191
+ .checkbox-label {
192
+ color: $secondary-color-text;
193
+ padding: 10px 0 6px;
194
+
195
+
196
+
197
+
198
+ // @media only screen and (max-width: 768px)
199
+ // .material-toolbar
200
+ // &.type-app
201
+ // padding: 10px 16px
202
+
203
+
204
+ }
205
+ }
206
+ }
207
+ }
@@ -0,0 +1,172 @@
1
+ .button {
2
+ user-select: none;
3
+ font-size: 0.875rem;
4
+ line-height: 1.5rem;
5
+ text-transform: uppercase;
6
+ flex: none;
7
+ display: flex;
8
+ -webkit-font-smoothing: antialiased;
9
+ white-space: nowrap;
10
+ position: relative;
11
+ vertical-align: middle;
12
+ cursor: default;
13
+ height: 36px;
14
+ padding: 6px 12px;
15
+ margin: 0 8px;
16
+ border: none;
17
+ border-radius: 3px;
18
+ overflow: hidden;
19
+ background-color: transparent;
20
+ background-repeat: no-repeat;
21
+
22
+ i {
23
+ pointer-events: none;
24
+ height: 24px;
25
+ width: 24px;
26
+ padding: 0;
27
+
28
+ }
29
+ &.hide {
30
+ display: none;
31
+
32
+ // pseudo class
33
+
34
+
35
+ }
36
+ &:focus {
37
+ background-color: rgba(0, 0, 0, .1);
38
+
39
+ }
40
+ &:active {
41
+ background-color: rgba(0, 0, 0, .1);
42
+
43
+ }
44
+ &:disabled {
45
+ opacity: .5;
46
+ background-color: transparent;
47
+ &:hover {
48
+ background-color: transparent;
49
+
50
+ }
51
+ }
52
+ &[type="submit"] {
53
+ font-weight: 600;
54
+ padding: 6px 20px;
55
+
56
+ // size
57
+ }
58
+ &.small-size {
59
+ height: 36px;
60
+ padding: 6px 12px;
61
+
62
+ // styles
63
+ }
64
+ &.style-raised {
65
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
66
+
67
+ }
68
+ &.style-outline {
69
+ border: 1px solid #E1E1E1;
70
+
71
+ }
72
+ &.style-action {
73
+ width: 40px;
74
+ height: 40px;
75
+ border-radius: 50%;
76
+ padding: 8px;
77
+ background-position: center;
78
+ i {
79
+ pointer-events: none;
80
+
81
+ height: 24px;
82
+ width: 24px;
83
+ margin-left: 0;
84
+ svg {
85
+ fill: rgba(0, 0, 0, 0.67);
86
+
87
+ }
88
+ }
89
+ &:hover {
90
+ background-color: rgba(0,0,0,.1);
91
+
92
+ }
93
+ &.small-size {
94
+ width: 36px;
95
+ height: 36px;
96
+ padding: 6px;
97
+
98
+ }
99
+ }
100
+ &.bold {
101
+ font-weight: 600;
102
+
103
+ }
104
+ &.normal-case {
105
+ text-transform: none;
106
+
107
+ }
108
+ &.color-secondary {
109
+ color: $secondary-color-text;
110
+ background-color: darken($secondary-color, 10%);
111
+ &:hover {
112
+ background-color: darken($secondary-color, 5%);
113
+ &:focus {
114
+ background-color: darken($secondary-color, 5%);
115
+ }
116
+ }
117
+ &:focus {
118
+ background-color: darken($secondary-color, 10%);
119
+ }
120
+ &:disabled {
121
+ background-color: darken($secondary-color, 10%);
122
+ &:hover {
123
+ background-color: darken($secondary-color, 10%);
124
+
125
+ }
126
+ }
127
+ }
128
+ &.color-primary {
129
+ color: $primary-color-text;
130
+ background-color: darken($primary-color, 10%);
131
+ &:hover {
132
+ background-color: darken($primary-color, 5%);
133
+ &:focus {
134
+ background-color: darken($primary-color, 5%);
135
+ }
136
+ }
137
+ &:focus {
138
+ background-color: darken($primary-color, 10%);
139
+ }
140
+ &:disabled {
141
+ background-color: darken($primary-color, 10%);
142
+ &:hover {
143
+ background-color: darken($primary-color, 10%);
144
+
145
+
146
+ }
147
+ }
148
+ }
149
+ }
150
+ @media only screen and (min-width: 640px) {
151
+ /* empty */
152
+ }
153
+ .button {
154
+ &:hover {
155
+ background-color: rgba(0, 0, 0, .1);
156
+ &:focus {
157
+ background-color: rgba(0, 0, 0, .1);
158
+
159
+ }
160
+ }
161
+ }
162
+ .ripple {
163
+ opacity: 1;
164
+ pointer-events: none;
165
+ z-index: 1;
166
+ position: absolute;
167
+ background-color: rgba(255, 255, 255, 0.1);
168
+ height: 5px;
169
+ width: 5px;
170
+ border-radius: 50%;
171
+
172
+ }
@@ -0,0 +1,134 @@
1
+ .checkbox {
2
+ display: block;
3
+ position: relative;
4
+ margin-left: 4px;
5
+ margin-right: 12px;
6
+ padding-top: 4px;
7
+ padding-top: 4px;
8
+ padding-bottom: 4px;
9
+ vertical-align: top;
10
+ overflow: hidden;
11
+ display: flex;
12
+ flew-direction: horizontal;
13
+ flex-wrap: nowrap;
14
+
15
+ input {
16
+ position: absolute;
17
+ left: -10000px;
18
+ order: 2;
19
+
20
+ }
21
+ .control {
22
+ //flex: none;
23
+ order: 1;
24
+ cursor: pointer;
25
+ position: relative;
26
+ height: 40px;
27
+ width: 40px;
28
+ padding: 0;
29
+ margin: 4px;
30
+ border-radius: 50%;
31
+
32
+ //margin: 10px 10px 10px 4px;
33
+ .icon {
34
+ position: absolute;
35
+ top: 11px;
36
+ left: 11px;
37
+ border: 2px solid rgba(0, 0, 0, 0.5);
38
+ border-radius: 2px;
39
+ transition: .3s;
40
+
41
+ //stroke: rgba(0, 0, 0, 0.5);
42
+ .check {
43
+ opacity: 0;
44
+ position: absolute;
45
+ fill: rgba(255, 255, 255, 0.95);
46
+ top: 8px;
47
+ left: 8px;
48
+
49
+ }
50
+ }
51
+ }
52
+ label {
53
+ flex: 1;
54
+ order: 3;
55
+ font-size: 1rem;
56
+ line-height: 1.25rem;
57
+ cursor: default;
58
+ padding: 15px 0 9px;
59
+ margin: 0px 2px 0px 12px;
60
+ overflow: hidden;
61
+
62
+ }
63
+ &.is-checked {
64
+ .control {
65
+ .icon {
66
+ transition: .3s;
67
+ border-color: $secondary-color;
68
+ background-color: $secondary-color;
69
+
70
+ .check {
71
+ opacity: 1;
72
+ position: absolute;
73
+ fill: rgba(255, 255, 255, 0.95);
74
+ top: 8px;
75
+ left: 8px;
76
+
77
+ }
78
+ }
79
+ }
80
+ }
81
+ &.is-disabled {
82
+ label {
83
+ opacity: .4;
84
+
85
+ }
86
+ .icon {
87
+ background-color: rgba(0, 0, 0, 0.26);
88
+ border-color: rgba(0, 0, 0, 0.26);
89
+ //opacity: .4
90
+
91
+ }
92
+ .control {
93
+ .icon {
94
+ opacity: .4;
95
+
96
+ }
97
+ }
98
+ }
99
+ &.is-focused {
100
+ .control {
101
+ background-color: rgba(34, 31, 31, 0.05);
102
+
103
+ }
104
+ }
105
+ &:active {
106
+ .control {
107
+ background-color: transparent;
108
+
109
+ }
110
+ }
111
+ }
112
+ .dark-mode .checkbox, {
113
+ /* empty */
114
+ }
115
+ .checkbox.dark-mode {
116
+ .control {
117
+ .icon {
118
+ border: 2px solid rgba(255, 255, 255, 0.5);
119
+
120
+ }
121
+ }
122
+ &.is-focused {
123
+ .control {
124
+ background-color: rgba(255, 255, 255, 0.05);
125
+
126
+ }
127
+ }
128
+ &.is-checked {
129
+ .control {
130
+ background-color: rgba(255, 255, 255, 0.5);
131
+
132
+ }
133
+ }
134
+ }
@@ -0,0 +1,220 @@
1
+ .colorpicker {
2
+ display: none;
3
+ position: absolute;
4
+ width: 280px;
5
+ background-color: var(--md-sys-color-surface);
6
+ border-radius: 4px;
7
+ box-shadow: var(--md-sys-elevation-3);
8
+ z-index: 1000;
9
+
10
+ // Panel container
11
+ .panel {
12
+ padding: 16px;
13
+
14
+ // Color gradient area
15
+ }
16
+ .gradient {
17
+ position: relative;
18
+ width: 100%;
19
+ height: 150px;
20
+ margin-bottom: 16px;
21
+ border-radius: 4px;
22
+ background-image: linear-gradient(rgba(0,0,0,0), #000), linear-gradient(90deg, #fff, currentColor);
23
+ cursor: pointer;
24
+
25
+ .marker {
26
+ position: absolute;
27
+ width: 12px;
28
+ height: 12px;
29
+ margin: -6px;
30
+ border: 2px solid #fff;
31
+ border-radius: 50%;
32
+ background-color: currentColor;
33
+ box-shadow: 0 1px 4px rgba(0,0,0,0.2);
34
+ cursor: pointer;
35
+ transition: transform 0.1s ease;
36
+
37
+ &:focus {
38
+ outline: none;
39
+ transform: scale(1.1);
40
+
41
+ // Hue and Alpha sliders
42
+ }
43
+ }
44
+ }
45
+ .hue, {
46
+ /* empty */
47
+ }
48
+ .alpha {
49
+ position: relative;
50
+ width: 100%;
51
+ height: 20px;
52
+ margin: 8px 0;
53
+ border-radius: 10px;
54
+
55
+ input[type="range"] {
56
+ position: absolute;
57
+ width: 100%;
58
+ height: 100%;
59
+ margin: 0;
60
+ opacity: 0;
61
+ cursor: pointer;
62
+ appearance: none;
63
+
64
+ }
65
+ .marker {
66
+ position: absolute;
67
+ width: 20px;
68
+ height: 20px;
69
+ transform: translateX(-50%);
70
+ border: 2px solid #fff;
71
+ border-radius: 50%;
72
+ background-color: currentColor;
73
+ box-shadow: 0 1px 4px rgba(0,0,0,0.2);
74
+ pointer-events: none;
75
+
76
+ }
77
+ }
78
+ .hue {
79
+ background-image: linear-gradient(to right, #f00 0%, #ff0 16.66%, #0f0 33.33%, #0ff 50%, #00f 66.66%, #f0f 83.33%, #f00 100%);
80
+
81
+ }
82
+ .alpha {
83
+ background-image: linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), linear-gradient(45deg, #aaa 25%, #fff 25%, #fff 75%, #aaa 75%, #aaa);
84
+ background-size: 8px 8px;
85
+ background-position: 0 0, 4px 4px;
86
+
87
+ &:after {
88
+ content: '';
89
+ position: absolute;
90
+ width: 100%;
91
+ height: 100%;
92
+ border-radius: inherit;
93
+ background-image: linear-gradient(90deg, rgba(0,0,0,0), currentColor);
94
+
95
+ // Input and Preview
96
+ }
97
+ }
98
+ .input {
99
+ width: 100%;
100
+ height: 40px;
101
+ margin: 8px 0;
102
+ padding: 0 12px;
103
+ border: 1px solid var(--md-sys-color-outline);
104
+ border-radius: 4px;
105
+ background: var(--md-sys-color-surface);
106
+ color: var(--md-sys-color-on-surface);
107
+ font-family: var(--md-sys-typescale-body-medium-font-family);
108
+ font-size: var(--md-sys-typescale-body-medium-size);
109
+ transition: border-color 0.2s ease;
110
+
111
+ &:focus {
112
+ outline: none;
113
+ border-color: var(--md-sys-color-primary);
114
+
115
+ }
116
+ }
117
+ .preview {
118
+ position: relative;
119
+ width: 40px;
120
+ height: 40px;
121
+ border-radius: 4px;
122
+ background-image: linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), linear-gradient(45deg, #aaa 25%, #fff 25%, #fff 75%, #aaa 75%, #aaa);
123
+ background-size: 8px 8px;
124
+ background-position: 0 0, 4px 4px;
125
+ overflow: hidden;
126
+
127
+ &:after {
128
+ content: '';
129
+ position: absolute;
130
+ inset: 0;
131
+ background-color: currentColor;
132
+
133
+ // Swatches
134
+ }
135
+ }
136
+ .swatches {
137
+ display: flex;
138
+ flex-wrap: wrap;
139
+ gap: 8px;
140
+ margin-top: 16px;
141
+
142
+ button {
143
+ width: 24px;
144
+ height: 24px;
145
+ padding: 0;
146
+ border: none;
147
+ border-radius: 4px;
148
+ background-color: currentColor;
149
+ cursor: pointer;
150
+ transition: transform 0.1s ease;
151
+
152
+ &:hover {
153
+ transform: scale(1.1);
154
+
155
+ }
156
+ &:focus {
157
+ outline: 2px solid var(--md-sys-color-primary);
158
+ outline-offset: 2px;
159
+
160
+ // States
161
+ }
162
+ }
163
+ }
164
+ &.is-open {
165
+ display: block;
166
+
167
+ }
168
+ &[data-inline="true"] {
169
+ position: relative;
170
+ display: block;
171
+
172
+ }
173
+ &[data-alpha="false"] {
174
+ .alpha {
175
+ display: none;
176
+
177
+ // Field wrapper styles
178
+ }
179
+ }
180
+ }
181
+ .colorpicker-field {
182
+ position: relative;
183
+ display: inline-flex;
184
+ align-items: center;
185
+
186
+ input {
187
+ padding-right: 40px;
188
+
189
+ }
190
+ .preview {
191
+ position: absolute;
192
+ right: 8px;
193
+ width: 24px;
194
+ height: 24px;
195
+ border-radius: 4px;
196
+ background-image: linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), linear-gradient(45deg, #aaa 25%, #fff 25%, #fff 75%, #aaa 75%, #aaa);
197
+ background-size: 8px 8px;
198
+ background-position: 0 0, 4px 4px;
199
+ pointer-events: none;
200
+
201
+ &:after {
202
+ content: '';
203
+ position: absolute;
204
+ inset: 0;
205
+ background-color: currentColor;
206
+
207
+ // Dark theme support
208
+ }
209
+ }
210
+ }
211
+ @media (prefers-color-scheme: dark) {
212
+ .colorpicker {
213
+ background-color: var(--md-sys-color-surface-container-high);
214
+
215
+ .input {
216
+ background: var(--md-sys-color-surface-container);
217
+ color: var(--md-sys-color-on-surface);
218
+ }
219
+ }
220
+ }