@resolve-components/theme 1.0.0 → 1.2.1

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 (49) hide show
  1. package/accordion/rc-accordion.scss +141 -0
  2. package/alert/rc-alert.scss +158 -0
  3. package/autocomplete/rc-autocomplete.scss +64 -0
  4. package/badge/rc-badge.scss +57 -0
  5. package/button/rc-button.scss +198 -0
  6. package/card/rc-card.scss +31 -0
  7. package/checkbox/rc-checkbox.scss +163 -0
  8. package/chip/rc-chip.scss +172 -0
  9. package/datepicker/rc-datepicker.scss +322 -0
  10. package/dialog/rc-dialog.scss +114 -0
  11. package/fesm2022/resolve-components-theme.mjs +44 -30
  12. package/fesm2022/resolve-components-theme.mjs.map +1 -1
  13. package/file-upload/rc-file-upload.scss +143 -0
  14. package/icon/rc-icon.scss +47 -0
  15. package/infinite-scroll/rc-infinite-scroll.scss +54 -0
  16. package/input/rc-input.scss +156 -0
  17. package/menu/rc-menu.scss +84 -0
  18. package/navbar/rc-navbar.scss +112 -0
  19. package/package.json +16 -9
  20. package/paginator/rc-paginator.scss +86 -0
  21. package/progress-bar/rc-progress-bar.scss +88 -0
  22. package/radio/rc-radio.scss +124 -0
  23. package/schematics/ng-add/index.js +149 -69
  24. package/schematics/ng-add/schema.json +15 -1
  25. package/select/rc-select.scss +197 -0
  26. package/sidenav/rc-sidenav.scss +154 -0
  27. package/slider/rc-slider.scss +311 -0
  28. package/spinner/rc-spinner.scss +106 -0
  29. package/{src/lib/styles → styles}/theming/_mapping.scss +2 -1
  30. package/table/rc-table.scss +147 -0
  31. package/tabs/rc-tabs.scss +155 -0
  32. package/toast/rc-toast.scss +228 -0
  33. package/toggle/rc-toggle.scss +138 -0
  34. package/tooltip/rc-tooltip.scss +34 -0
  35. package/tree/rc-tree.scss +114 -0
  36. package/types/resolve-components-theme.d.ts +32 -31
  37. package/virtual-scroll/rc-virtual-scroll.scss +38 -0
  38. /package/{src/lib/styles → styles}/_all.scss +0 -0
  39. /package/{src/lib/styles → styles}/_globals.scss +0 -0
  40. /package/{src/lib/styles → styles}/_themes.scss +0 -0
  41. /package/{src/lib/styles → styles}/_theming.scss +0 -0
  42. /package/{src/lib/styles → styles}/themes/_dark.scss +0 -0
  43. /package/{src/lib/styles → styles}/themes/_default.scss +0 -0
  44. /package/{src/lib/styles → styles}/theming/_animation.scss +0 -0
  45. /package/{src/lib/styles → styles}/theming/_functions.scss +0 -0
  46. /package/{src/lib/styles → styles}/theming/_get-value.scss +0 -0
  47. /package/{src/lib/styles → styles}/theming/_install.scss +0 -0
  48. /package/{src/lib/styles → styles}/theming/_register.scss +0 -0
  49. /package/{src/lib/styles → styles}/theming/_theming-variables.scss +0 -0
@@ -0,0 +1,141 @@
1
+ // =============================================================================
2
+ // rc-accordion Resolve Components Accordion (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+ @use '../styles/theming/animation' as *;
8
+
9
+ @include rc-install-component() {
10
+ // ── Accordion container ────────────────────────────────────────────────────
11
+ .rc-accordion {
12
+ display: flex;
13
+ flex-direction: column;
14
+ border: 1px solid rc-theme('accordion-border-color');
15
+ border-radius: rc-theme('accordion-border-radius');
16
+ overflow: hidden;
17
+ font-family: rc-theme('accordion-font-family');
18
+ background: rc-theme('accordion-background');
19
+
20
+ // Gap between items — achieved by border-top on all but first
21
+ > .rc-accordion-item + .rc-accordion-item {
22
+ border-top: 1px solid rc-theme('accordion-border-color');
23
+ }
24
+
25
+ // ── Filled variant ───────────────────────────────────────────────────────
26
+ &.rc-accordion-filled {
27
+ > .rc-accordion-item .rc-accordion-header {
28
+ background: rc-theme('accordion-filled-header-background');
29
+
30
+ &:hover:not(:disabled) {
31
+ background: rc-theme('accordion-filled-header-hover-background');
32
+ }
33
+ }
34
+
35
+ > .rc-accordion-item.rc-accordion-item-expanded .rc-accordion-header {
36
+ background: rc-theme('accordion-filled-header-background');
37
+ }
38
+ }
39
+ }
40
+
41
+ // ── Accordion item ─────────────────────────────────────────────────────────
42
+ .rc-accordion-item {
43
+ display: block;
44
+
45
+ // Expanded state — animate via CSS grid trick (height: auto animatable)
46
+ &.rc-accordion-item-expanded .rc-accordion-body {
47
+ grid-template-rows: 1fr;
48
+ }
49
+
50
+ &.rc-accordion-item-expanded .rc-accordion-icon {
51
+ transform: rotate(180deg);
52
+ }
53
+
54
+ &.rc-accordion-item-disabled {
55
+ opacity: rc-theme('accordion-disabled-opacity');
56
+ }
57
+ }
58
+
59
+ // ── Header button ──────────────────────────────────────────────────────────
60
+ .rc-accordion-header {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ width: 100%;
65
+ padding: rc-theme('accordion-header-padding');
66
+ font-family: rc-theme('accordion-font-family');
67
+ font-size: rc-theme('accordion-header-font-size');
68
+ font-weight: rc-theme('accordion-header-font-weight');
69
+ color: rc-theme('accordion-header-text-color');
70
+ background: rc-theme('accordion-header-background');
71
+ border: none;
72
+ cursor: pointer;
73
+ text-align: left;
74
+ @include rc-component-animation(
75
+ background,
76
+ $duration: rc-theme('accordion-transition-duration'),
77
+ $timing: rc-theme('accordion-transition-timing')
78
+ );
79
+
80
+ &:hover:not(:disabled) {
81
+ background: rc-theme('accordion-header-hover-background');
82
+ }
83
+
84
+ &:focus-visible {
85
+ outline: 2px solid rc-theme('accordion-focus-outline-color');
86
+ outline-offset: -2px;
87
+ }
88
+
89
+ &:disabled {
90
+ cursor: not-allowed;
91
+ }
92
+ }
93
+
94
+ // ── Header title ───────────────────────────────────────────────────────────
95
+ .rc-accordion-title {
96
+ flex: 1;
97
+ min-width: 0;
98
+ }
99
+
100
+ // ── Chevron icon ───────────────────────────────────────────────────────────
101
+ .rc-accordion-icon {
102
+ flex-shrink: 0;
103
+ margin-left: 0.75rem;
104
+ color: rc-theme('accordion-icon-color');
105
+ @include rc-component-animation(
106
+ transform,
107
+ $duration: rc-theme('accordion-transition-duration'),
108
+ $timing: rc-theme('accordion-transition-timing')
109
+ );
110
+ }
111
+
112
+ // ── Body (animated collapse) ───────────────────────────────────────────────
113
+ // Uses the CSS grid row height trick: 0fr → 1fr smoothly animates height.
114
+ .rc-accordion-body {
115
+ display: grid;
116
+ grid-template-rows: 0fr;
117
+ @include rc-component-animation(
118
+ grid-template-rows,
119
+ $duration: rc-theme('accordion-transition-duration'),
120
+ $timing: rc-theme('accordion-transition-timing')
121
+ );
122
+ overflow: hidden;
123
+ }
124
+
125
+ // ── Content area ──────────────────────────────────────────────────────────
126
+ // min-height: 0 is required for the 0fr → 1fr grid trick to work.
127
+ // IMPORTANT: padding must live on the inner wrapper, not here — padding
128
+ // bleeds past min-height: 0 and makes the panel visible even when collapsed.
129
+ .rc-accordion-content {
130
+ overflow: hidden;
131
+ min-height: 0;
132
+ }
133
+
134
+ // ── Inner wrapper — holds padding so it collapses cleanly ─────────────────
135
+ .rc-accordion-inner {
136
+ padding: rc-theme('accordion-content-padding');
137
+ font-size: rc-theme('accordion-content-font-size');
138
+ color: rc-theme('accordion-content-text-color');
139
+ line-height: 1.6;
140
+ }
141
+ }
@@ -0,0 +1,158 @@
1
+ // =============================================================================
2
+ // rc-alert Resolve Components Alert (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+ @use '../styles/theming/animation' as *;
8
+
9
+ @include rc-install-component() {
10
+ .rc-alert {
11
+ display: flex;
12
+ align-items: flex-start;
13
+ gap: rc-theme('alert-gap');
14
+ padding: rc-theme('alert-padding');
15
+ border-radius: rc-theme('alert-border-radius');
16
+ border: 1px solid transparent;
17
+ font-size: rc-theme('alert-font-size');
18
+ line-height: 1.5;
19
+
20
+ // ─── Layout ───────────────────────────────────────────────────────────
21
+
22
+ &-icon {
23
+ flex-shrink: 0;
24
+ font-size: 1.125rem;
25
+ margin-top: 0.05em;
26
+ }
27
+
28
+ &-body {
29
+ flex: 1;
30
+ min-width: 0;
31
+ }
32
+
33
+ &-title {
34
+ margin: 0 0 0.25rem;
35
+ font-size: rc-theme('alert-title-font-size');
36
+ font-weight: rc-theme('alert-title-font-weight');
37
+ line-height: 1.4;
38
+ }
39
+
40
+ &-message {
41
+ margin: 0;
42
+ }
43
+
44
+ &-close {
45
+ flex-shrink: 0;
46
+ display: inline-flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ background: none;
50
+ border: none;
51
+ padding: 0;
52
+ cursor: pointer;
53
+ opacity: 0.6;
54
+ font-size: rc-theme('alert-close-size');
55
+ color: inherit;
56
+ border-radius: rc-theme('radius-sm');
57
+ line-height: 1;
58
+ @include rc-component-animation(opacity, $speed: 'medium');
59
+ margin-top: 0.05em;
60
+
61
+ &:hover {
62
+ opacity: 1;
63
+ }
64
+
65
+ &:focus-visible {
66
+ outline: 2px solid currentColor;
67
+ outline-offset: 2px;
68
+ opacity: 1;
69
+ }
70
+ }
71
+
72
+ // ─── Status × Variant matrix ──────────────────────────────────────────
73
+
74
+ // INFO
75
+ &-info {
76
+ &.rc-alert-subtle {
77
+ background: rc-theme('alert-info-subtle-background');
78
+ color: rc-theme('alert-info-subtle-color');
79
+ border-color: rc-theme('alert-info-subtle-border');
80
+ }
81
+
82
+ &.rc-alert-filled {
83
+ background: rc-theme('alert-info-filled-background');
84
+ color: rc-theme('alert-info-filled-color');
85
+ border-color: rc-theme('alert-info-filled-border');
86
+ }
87
+
88
+ &.rc-alert-outline {
89
+ background: rc-theme('alert-info-outline-background');
90
+ color: rc-theme('alert-info-outline-color');
91
+ border-color: rc-theme('alert-info-outline-border');
92
+ }
93
+ }
94
+
95
+ // SUCCESS
96
+ &-success {
97
+ &.rc-alert-subtle {
98
+ background: rc-theme('alert-success-subtle-background');
99
+ color: rc-theme('alert-success-subtle-color');
100
+ border-color: rc-theme('alert-success-subtle-border');
101
+ }
102
+
103
+ &.rc-alert-filled {
104
+ background: rc-theme('alert-success-filled-background');
105
+ color: rc-theme('alert-success-filled-color');
106
+ border-color: rc-theme('alert-success-filled-border');
107
+ }
108
+
109
+ &.rc-alert-outline {
110
+ background: rc-theme('alert-success-outline-background');
111
+ color: rc-theme('alert-success-outline-color');
112
+ border-color: rc-theme('alert-success-outline-border');
113
+ }
114
+ }
115
+
116
+ // WARNING
117
+ &-warning {
118
+ &.rc-alert-subtle {
119
+ background: rc-theme('alert-warning-subtle-background');
120
+ color: rc-theme('alert-warning-subtle-color');
121
+ border-color: rc-theme('alert-warning-subtle-border');
122
+ }
123
+
124
+ &.rc-alert-filled {
125
+ background: rc-theme('alert-warning-filled-background');
126
+ color: rc-theme('alert-warning-filled-color');
127
+ border-color: rc-theme('alert-warning-filled-border');
128
+ }
129
+
130
+ &.rc-alert-outline {
131
+ background: rc-theme('alert-warning-outline-background');
132
+ color: rc-theme('alert-warning-outline-color');
133
+ border-color: rc-theme('alert-warning-outline-border');
134
+ }
135
+ }
136
+
137
+ // DANGER
138
+ &-danger {
139
+ &.rc-alert-subtle {
140
+ background: rc-theme('alert-danger-subtle-background');
141
+ color: rc-theme('alert-danger-subtle-color');
142
+ border-color: rc-theme('alert-danger-subtle-border');
143
+ }
144
+
145
+ &.rc-alert-filled {
146
+ background: rc-theme('alert-danger-filled-background');
147
+ color: rc-theme('alert-danger-filled-color');
148
+ border-color: rc-theme('alert-danger-filled-border');
149
+ }
150
+
151
+ &.rc-alert-outline {
152
+ background: rc-theme('alert-danger-outline-background');
153
+ color: rc-theme('alert-danger-outline-color');
154
+ border-color: rc-theme('alert-danger-outline-border');
155
+ }
156
+ }
157
+ }
158
+ }
@@ -0,0 +1,64 @@
1
+ @use '../styles/theming/install' as *;
2
+ @use '../styles/theming/animation' as *;
3
+
4
+ @include rc-install-component() {
5
+ // ── Host ────────────────────────────────────────────────────────────────────
6
+ .rc-autocomplete {
7
+ position: relative;
8
+ display: block;
9
+ width: 100%;
10
+
11
+ // Make the inner rcInput fill the host completely
12
+ input.rc-input {
13
+ width: 100%;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ // Shift right padding when clear button is present so text doesn't overlap
18
+ &.rc-autocomplete-has-value input.rc-input {
19
+ padding-right: 2rem;
20
+ }
21
+ }
22
+
23
+ // ── Clear button ─────────────────────────────────────────────────────────────
24
+ .rc-autocomplete-clear {
25
+ position: absolute;
26
+ top: 50%;
27
+ right: 0.5rem;
28
+ transform: translateY(-50%);
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ width: 1.25rem;
33
+ height: 1.25rem;
34
+ padding: 0;
35
+ border: none;
36
+ border-radius: 50%;
37
+ background: transparent;
38
+ color: rc-theme('autocomplete-clear-color');
39
+ cursor: pointer;
40
+ @include rc-component-animation(color background, $speed: 'medium');
41
+
42
+ &:hover {
43
+ color: rc-theme('autocomplete-clear-hover-color');
44
+ background: rc-theme('autocomplete-clear-hover-background');
45
+ }
46
+
47
+ &:focus-visible {
48
+ outline: 2px solid rc-theme('autocomplete-clear-hover-color');
49
+ outline-offset: 1px;
50
+ }
51
+
52
+ svg {
53
+ display: block;
54
+ pointer-events: none;
55
+ }
56
+ }
57
+
58
+ // ── Open state ────────────────────────────────────────────────────────────────
59
+ .rc-autocomplete-open input.rc-input {
60
+ // Keep focused ring while panel is open
61
+ border-color: rc-theme('input-focus-border-color');
62
+ box-shadow: 0 0 0 3px rc-theme('input-focus-shadow-color');
63
+ }
64
+ }
@@ -0,0 +1,57 @@
1
+ // =============================================================================
2
+ // rc-badge Resolve Components Badge (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+
8
+ @include rc-install-component() {
9
+ .rc-badge {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ font-family: rc-theme('badge-font-family');
13
+ font-weight: rc-theme('badge-font-weight');
14
+ border-radius: rc-theme('badge-border-radius');
15
+ white-space: nowrap;
16
+ line-height: 1;
17
+
18
+ // -- Sizes --
19
+
20
+ &-sm {
21
+ font-size: rc-theme('badge-sm-font-size');
22
+ padding: rc-theme('badge-sm-padding');
23
+ }
24
+
25
+ &-md {
26
+ font-size: rc-theme('badge-md-font-size');
27
+ padding: rc-theme('badge-md-padding');
28
+ }
29
+
30
+ // -- Statuses --
31
+
32
+ &-default {
33
+ background: rc-theme('badge-default-background-color');
34
+ color: rc-theme('badge-default-text-color');
35
+ }
36
+
37
+ &-primary {
38
+ background: rc-theme('badge-primary-background-color');
39
+ color: rc-theme('badge-primary-text-color');
40
+ }
41
+
42
+ &-success {
43
+ background: rc-theme('badge-success-background-color');
44
+ color: rc-theme('badge-success-text-color');
45
+ }
46
+
47
+ &-warning {
48
+ background: rc-theme('badge-warning-background-color');
49
+ color: rc-theme('badge-warning-text-color');
50
+ }
51
+
52
+ &-danger {
53
+ background: rc-theme('badge-danger-background-color');
54
+ color: rc-theme('badge-danger-text-color');
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,198 @@
1
+ // =============================================================================
2
+ // rc-button Resolve Components Button (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+ @use '../styles/theming/animation' as *;
8
+
9
+ @include rc-install-component() {
10
+ // Shared base for all rcButton host elements
11
+ [rcButton] {
12
+ // -------------------------------------------------------------------------
13
+ // CSS custom property palette — overridden by status modifier classes.
14
+ // Variant classes consume these vars so every shape works with every status.
15
+ // -------------------------------------------------------------------------
16
+ --rcb-color: #{rc-theme('button-filled-primary-background-color')};
17
+ --rcb-color-hover: #{rc-theme(
18
+ 'button-filled-primary-hover-background-color'
19
+ )};
20
+ --rcb-color-active: #{rc-theme(
21
+ 'button-filled-primary-active-background-color'
22
+ )};
23
+ --rcb-text-on: #{rc-theme('button-filled-primary-text-color')};
24
+
25
+ display: inline-flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ gap: rc-theme('spacing-xs');
29
+ font-family: rc-theme('button-font-family');
30
+ font-weight: rc-theme('button-font-weight');
31
+ border: 1px solid transparent;
32
+ border-radius: rc-theme('button-border-radius');
33
+ cursor: pointer;
34
+ text-decoration: none;
35
+ @include rc-component-animation(
36
+ background-color,
37
+ border-color,
38
+ box-shadow,
39
+ color
40
+ );
41
+ line-height: 1;
42
+ white-space: nowrap;
43
+ user-select: none;
44
+
45
+ &:focus-visible {
46
+ outline: rc-theme('focus-ring-width') solid
47
+ rc-theme('button-focus-outline-color');
48
+ outline-offset: rc-theme('focus-ring-offset');
49
+ }
50
+
51
+ &:disabled,
52
+ &[aria-disabled='true'] {
53
+ opacity: rc-theme('button-disabled-opacity');
54
+ cursor: not-allowed;
55
+ pointer-events: none;
56
+ }
57
+
58
+ // ── Sizes ─────────────────────────────────────────────────────────────────
59
+ &.rc-button-sm {
60
+ font-size: rc-theme('button-sm-font-size');
61
+ padding: rc-theme('button-sm-padding');
62
+ height: rc-theme('button-sm-height');
63
+ }
64
+
65
+ &.rc-button-md {
66
+ font-size: rc-theme('button-md-font-size');
67
+ padding: rc-theme('button-md-padding');
68
+ height: rc-theme('button-md-height');
69
+ }
70
+
71
+ &.rc-button-lg {
72
+ font-size: rc-theme('button-lg-font-size');
73
+ padding: rc-theme('button-lg-padding');
74
+ height: rc-theme('button-lg-height');
75
+ }
76
+
77
+ // ── Icon-only ─────────────────────────────────────────────────────────────
78
+ &.rc-button-icon-only {
79
+ padding: 0;
80
+ aspect-ratio: 1;
81
+ }
82
+
83
+ // ── Status — sets the color palette vars ─────────────────────────────────
84
+ &.rc-button-primary {
85
+ --rcb-color: #{rc-theme('button-filled-primary-background-color')};
86
+ --rcb-color-hover: #{rc-theme(
87
+ 'button-filled-primary-hover-background-color'
88
+ )};
89
+ --rcb-color-active: #{rc-theme(
90
+ 'button-filled-primary-active-background-color'
91
+ )};
92
+ --rcb-text-on: #{rc-theme('button-filled-primary-text-color')};
93
+ }
94
+
95
+ &.rc-button-secondary {
96
+ --rcb-color: #{rc-theme('button-filled-secondary-background-color')};
97
+ --rcb-color-hover: #{rc-theme(
98
+ 'button-filled-secondary-hover-background-color'
99
+ )};
100
+ --rcb-color-active: #{rc-theme(
101
+ 'button-filled-secondary-active-background-color'
102
+ )};
103
+ --rcb-text-on: #{rc-theme('button-filled-secondary-text-color')};
104
+ }
105
+
106
+ &.rc-button-danger {
107
+ --rcb-color: #{rc-theme('button-filled-danger-background-color')};
108
+ --rcb-color-hover: #{rc-theme(
109
+ 'button-filled-danger-hover-background-color'
110
+ )};
111
+ --rcb-color-active: #{rc-theme(
112
+ 'button-filled-danger-active-background-color'
113
+ )};
114
+ --rcb-text-on: #{rc-theme('button-filled-danger-text-color')};
115
+ }
116
+
117
+ &.rc-button-info {
118
+ --rcb-color: #{rc-theme('button-filled-info-background-color')};
119
+ --rcb-color-hover: #{rc-theme(
120
+ 'button-filled-info-hover-background-color'
121
+ )};
122
+ --rcb-color-active: #{rc-theme(
123
+ 'button-filled-info-active-background-color'
124
+ )};
125
+ --rcb-text-on: #{rc-theme('button-filled-info-text-color')};
126
+ }
127
+
128
+ &.rc-button-success {
129
+ --rcb-color: #{rc-theme('button-filled-success-background-color')};
130
+ --rcb-color-hover: #{rc-theme(
131
+ 'button-filled-success-hover-background-color'
132
+ )};
133
+ --rcb-color-active: #{rc-theme(
134
+ 'button-filled-success-active-background-color'
135
+ )};
136
+ --rcb-text-on: #{rc-theme('button-filled-success-text-color')};
137
+ }
138
+
139
+ &.rc-button-warning {
140
+ --rcb-color: #{rc-theme('button-filled-warning-background-color')};
141
+ --rcb-color-hover: #{rc-theme(
142
+ 'button-filled-warning-hover-background-color'
143
+ )};
144
+ --rcb-color-active: #{rc-theme(
145
+ 'button-filled-warning-active-background-color'
146
+ )};
147
+ --rcb-text-on: #{rc-theme('button-filled-warning-text-color')};
148
+ }
149
+
150
+ // ── Variant — consumes palette vars ───────────────────────────────────────
151
+ &.rc-button-filled {
152
+ background: var(--rcb-color);
153
+ color: var(--rcb-text-on);
154
+ border-color: transparent;
155
+
156
+ &:hover:not(:disabled):not([aria-disabled='true']) {
157
+ background: var(--rcb-color-hover);
158
+ }
159
+
160
+ &:active:not(:disabled):not([aria-disabled='true']) {
161
+ background: var(--rcb-color-active);
162
+ }
163
+ }
164
+
165
+ &.rc-button-outline {
166
+ background: transparent;
167
+ color: var(--rcb-color);
168
+ border-color: var(--rcb-color);
169
+
170
+ &:hover:not(:disabled):not([aria-disabled='true']) {
171
+ background: var(--rcb-color);
172
+ color: var(--rcb-text-on);
173
+ border-color: var(--rcb-color);
174
+ }
175
+
176
+ &:active:not(:disabled):not([aria-disabled='true']) {
177
+ background: var(--rcb-color-active);
178
+ color: var(--rcb-text-on);
179
+ border-color: var(--rcb-color-active);
180
+ }
181
+ }
182
+
183
+ &.rc-button-ghost {
184
+ background: transparent;
185
+ color: var(--rcb-color);
186
+ border-color: transparent;
187
+
188
+ &:hover:not(:disabled):not([aria-disabled='true']) {
189
+ background: rc-theme('button-ghost-hover-background-color');
190
+ }
191
+
192
+ &:active:not(:disabled):not([aria-disabled='true']) {
193
+ background: var(--rcb-color);
194
+ color: var(--rcb-text-on);
195
+ }
196
+ }
197
+ }
198
+ }
@@ -0,0 +1,31 @@
1
+ // =============================================================================
2
+ // rc-card — Resolve Components Card (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+ @use '../styles/theming/animation' as *;
8
+
9
+ @include rc-install-component() {
10
+ .rc-card {
11
+ font-family: rc-theme('card-header-font-family');
12
+ background: rc-theme('card-background-color');
13
+ color: rc-theme('card-text-color');
14
+ border-radius: rc-theme('card-border-radius');
15
+ overflow: hidden;
16
+ @include rc-component-animation(box-shadow);
17
+
18
+ &-padded {
19
+ padding: rc-theme('card-padding');
20
+ height: 100%;
21
+ }
22
+
23
+ &-bordered {
24
+ border: 1px solid rc-theme('card-border-color');
25
+ }
26
+
27
+ &-shadow {
28
+ box-shadow: rc-theme('card-shadow');
29
+ }
30
+ }
31
+ }