@sb1/ffe-chips 1.2.1 → 1.3.0

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 (3) hide show
  1. package/README.md +47 -0
  2. package/css/chip.css +166 -0
  3. package/package.json +7 -5
package/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # @sb1/ffe-chips
2
+
3
+ ## Install
4
+
5
+ ```bash
6
+ npm install --save @sb1/ffe-core @sb1/ffe-chips
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ ```less
12
+ @import 'path/to/node_modules/@sb1/ffe-chips/less/chip';
13
+ ```
14
+
15
+ ### Importing compiled CSS
16
+
17
+ If your project does not use Less, you can import the compiled styling:
18
+
19
+ ```css
20
+ @import '~@sb1/ffe-chips/css/chip.css';
21
+ ```
22
+
23
+ See also `@sb1/ffe-chips-react`.
24
+
25
+ ## Theming with CSS custom properties
26
+
27
+ In order to support theming of components, this package contains styling that depends on a set of custom properties, defined in `less/theme.less`. These properties in turn depend on a base theme defined in `ffe-core`.
28
+
29
+ If your project uses the `ffe-core`, you're probably good to go. If not, make sure to import the core properties in `theme.less`:
30
+
31
+ ```css
32
+ @import '~@sb1/ffe-core/less/theme';
33
+ ```
34
+
35
+ ## Development
36
+
37
+ To start a local development server, run the following from the designsystem root folder:
38
+
39
+ ```bash
40
+ npm install
41
+ npm run build
42
+ npm start
43
+ ```
44
+
45
+ A local instance of `component-overview` with live reloading will run at http://localhost:1234/.
46
+
47
+ Example implementations using the latest versions of all components are also available at https://sparebank1.github.io/designsystem.
package/css/chip.css ADDED
@@ -0,0 +1,166 @@
1
+ :root,
2
+ :host {
3
+ --ffe-v-chip-text-color: var(--ffe-farge-svart);
4
+ --ffe-v-chip-background-color: var(--ffe-farge-hvit);
5
+ --ffe-v-chip-border-color: var(--ffe-farge-frost-70);
6
+ --ffe-v-chip-text-color-hover: var(--ffe-farge-svart);
7
+ --ffe-v-chip-background-color-hover: var(--ffe-farge-frost-30);
8
+ --ffe-v-chip-border-color-hover: var(--ffe-farge-frost-70);
9
+ --ffe-v-chip-text-color-active: var(--ffe-farge-svart);
10
+ --ffe-v-chip-background-color-active: var(--ffe-farge-frost-70);
11
+ --ffe-v-chip-border-color-active: var(--ffe-farge-frost-70);
12
+ --ffe-v-chip-text-color-selected: var(--ffe-farge-hvit);
13
+ --ffe-v-chip-background-color-selected: var(--ffe-farge-vann);
14
+ --ffe-v-chip-border-color-selected: var(--ffe-farge-vann);
15
+ --ffe-v-chip-text-color-selected-hover: var(--ffe-farge-hvit);
16
+ --ffe-v-chip-background-color-selected-hover: var(--ffe-farge-vann-70);
17
+ --ffe-v-chip-border-color-selected-hover: var(--ffe-farge-vann);
18
+ --ffe-v-chip-outline-color: var(--ffe-farge-vann);
19
+ }
20
+ @media (prefers-color-scheme: dark) {
21
+ :root .regard-color-scheme-preference,
22
+ :host .regard-color-scheme-preference {
23
+ --ffe-v-chip-text-color: var(--ffe-farge-hvit);
24
+ --ffe-v-chip-background-color: var(--ffe-farge-svart);
25
+ --ffe-v-chip-border-color: var(--ffe-farge-graa);
26
+ --ffe-v-chip-text-color-hover: var(--ffe-farge-hvit);
27
+ --ffe-v-chip-background-color-hover: var(--ffe-farge-koksgraa);
28
+ --ffe-v-chip-border-color-hover: var(--ffe-farge-graa);
29
+ --ffe-v-chip-text-color-active: var(--ffe-farge-hvit);
30
+ --ffe-v-chip-background-color-active: var(--ffe-farge-vann);
31
+ --ffe-v-chip-border-color-active: var(--ffe-farge-vann);
32
+ --ffe-v-chip-text-color-selected: var(--ffe-farge-hvit);
33
+ --ffe-v-chip-background-color-selected: var(--ffe-farge-vann);
34
+ --ffe-v-chip-border-color-selected: var(--ffe-farge-vann);
35
+ --ffe-v-chip-text-color-selected-hover: var(--ffe-farge-hvit);
36
+ --ffe-v-chip-background-color-selected-hover: var(--ffe-farge-vann-70);
37
+ --ffe-v-chip-border-color-selected-hover: var(--ffe-farge-vann);
38
+ --ffe-v-chip-outline-color: var(--ffe-farge-hvit);
39
+ }
40
+ }
41
+ :root .ffe-chip--on-colored-bg,
42
+ :host .ffe-chip--on-colored-bg {
43
+ --ffe-v-chip-text-color: var(--ffe-farge-hvit);
44
+ --ffe-v-chip-background-color: var(--ffe-farge-vann);
45
+ --ffe-v-chip-border-color: var(--ffe-farge-hvit);
46
+ --ffe-v-chip-text-color-hover: var(--ffe-farge-hvit);
47
+ --ffe-v-chip-background-color-hover: var(--ffe-farge-vann-70);
48
+ --ffe-v-chip-border-color-hover: var(--ffe-farge-hvit);
49
+ --ffe-v-chip-text-color-active: var(--ffe-farge-svart);
50
+ --ffe-v-chip-background-color-active: var(--ffe-farge-vann-70);
51
+ --ffe-v-chip-border-color-active: var(--ffe-farge-vann-70);
52
+ --ffe-v-chip-text-color-selected: var(--ffe-farge-svart);
53
+ --ffe-v-chip-background-color-selected: var(--ffe-farge-hvit);
54
+ --ffe-v-chip-border-color-selected: var(--ffe-farge-frost);
55
+ --ffe-v-chip-text-color-selected-hover: var(--ffe-farge-svart);
56
+ --ffe-v-chip-background-color-selected-hover: var(--ffe-farge-frost-30);
57
+ --ffe-v-chip-border-color-selected-hover: var(--ffe-farge-frost);
58
+ --ffe-v-chip-outline-color: var(--ffe-farge-hvit);
59
+ }
60
+ .ffe-chip {
61
+ --border-width: 1px;
62
+ --background-color: var(--ffe-v-chip-background-color);
63
+ --border-color: var(--ffe-v-chip-border-color);
64
+ --text-color: var(--ffe-v-chip-text-color);
65
+ --border-radius: 24px;
66
+ --text-offset: 12px;
67
+ --icon-offset: var(--ffe-spacing-xs);
68
+ --offset-y: calc(var(--ffe-spacing-2xs) - var(--border-width));
69
+ --space-between: var(--ffe-spacing-2xs);
70
+ all: unset;
71
+ display: grid;
72
+ place-items: center;
73
+ grid-template-columns: var(--text-offset) 1fr var(--text-offset);
74
+ grid-template-rows: var(--offset-y) auto var(--offset-y);
75
+ border: var(--border-width) solid var(--border-color);
76
+ background: var(--background-color);
77
+ color: var(--text-color);
78
+ border-radius: var(--border-radius);
79
+ -webkit-transition-property: background-color, border-color, color, -webkit-transform;
80
+ transition-property: background-color, border-color, color, -webkit-transform;
81
+ -o-transition-property: background-color, transform, border-color, color;
82
+ transition-property: background-color, transform, border-color, color;
83
+ transition-property: background-color, transform, border-color, color, -webkit-transform;
84
+ -webkit-transition-duration: var(--ffe-transition-duration);
85
+ -o-transition-duration: var(--ffe-transition-duration);
86
+ transition-duration: var(--ffe-transition-duration);
87
+ -webkit-transition-timing-function: var(--ffe-ease);
88
+ -o-transition-timing-function: var(--ffe-ease);
89
+ transition-timing-function: var(--ffe-ease);
90
+ cursor: pointer;
91
+ }
92
+ .ffe-chip .ffe-icons,
93
+ .ffe-chip__label {
94
+ color: inherit;
95
+ }
96
+ .ffe-chip .ffe-icons {
97
+ display: block;
98
+ }
99
+ .ffe-chip__label {
100
+ margin: 0;
101
+ grid-area: 2 / 2 / span 1 / span 1;
102
+ }
103
+ @media (hover: hover) and (pointer: fine) {
104
+ .ffe-chip:hover {
105
+ --background-color: var(--ffe-v-chip-background-color-hover);
106
+ --border-color: var(--ffe-v-chip-border-color-hover);
107
+ --text-color: var(--ffe-v-chip-text-color-hover);
108
+ }
109
+ }
110
+ .ffe-chip:focus-visible {
111
+ outline: 2px solid var(--ffe-v-chip-outline-color);
112
+ outline-offset: 3px;
113
+ }
114
+ .ffe-chip:active {
115
+ --background-color: var(--ffe-v-chip-background-color-active);
116
+ --border-color: var(--ffe-v-chip-border-color-active);
117
+ --text-color: var(--ffe-v-chip-text-color-active);
118
+ -webkit-transform: scale(0.97);
119
+ transform: scale(0.97);
120
+ }
121
+ .ffe-chip--selected {
122
+ --background-color: var(--ffe-v-chip-background-color-selected);
123
+ --border-color: var(--ffe-v-chip-border-color-selected);
124
+ --text-color: var(--ffe-v-chip-text-color-selected);
125
+ }
126
+ @media (hover: hover) and (pointer: fine) {
127
+ .ffe-chip--selected:hover {
128
+ --background-color: var(--ffe-v-chip-background-color-selected-hover);
129
+ --border-color: var(--ffe-v-chip-border-color-selected-hover);
130
+ --text-color: var(--ffe-v-chip-text-color-selected-hover);
131
+ }
132
+ }
133
+ .ffe-chip--sm {
134
+ --text-offset: 12px;
135
+ --space-between: var(--ffe-spacing-2xs);
136
+ }
137
+ .ffe-chip--md {
138
+ --icon-offset: 12px;
139
+ --text-offset: var(--ffe-spacing-sm);
140
+ --offset-y: calc(var(--ffe-spacing-xs) - var(--border-width));
141
+ --space-between: var(--ffe-spacing-xs);
142
+ }
143
+ .ffe-chip--lg {
144
+ --icon-offset: var(--ffe-spacing-sm);
145
+ --text-offset: var(--ffe-spacing-md);
146
+ --offset-y: calc(12px - var(--border-width));
147
+ --space-between: var(--ffe-spacing-xs);
148
+ }
149
+ .ffe-chip--icon-right {
150
+ grid-template-columns: var(--text-offset) 1fr var(--space-between) auto var(--icon-offset);
151
+ }
152
+ .ffe-chip--icon-right .ffe-icons {
153
+ grid-area: 2 / 4 / span 1 / span 1;
154
+ }
155
+ .ffe-chip--icon-right .ffe-chip__label {
156
+ grid-area: 2 / 2 / span 1 / span 1;
157
+ }
158
+ .ffe-chip--icon-left {
159
+ grid-template-columns: var(--icon-offset) auto var(--space-between) 1fr var(--text-offset);
160
+ }
161
+ .ffe-chip--icon-left .ffe-icons {
162
+ grid-area: 2 / 2 / span 1 / span 1;
163
+ }
164
+ .ffe-chip--icon-left .ffe-chip__label {
165
+ grid-area: 2 / 4 / span 1 / span 1;
166
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sb1/ffe-chips",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Chips are compact elements that represent an input, attribute, or action.",
5
5
  "keywords": [
6
6
  "ffe"
@@ -8,7 +8,8 @@
8
8
  "license": "MIT",
9
9
  "author": "SpareBank 1",
10
10
  "files": [
11
- "less"
11
+ "less",
12
+ "css"
12
13
  ],
13
14
  "repository": {
14
15
  "type": "git",
@@ -16,10 +17,11 @@
16
17
  },
17
18
  "scripts": {
18
19
  "lint": "ffe-buildtool stylelint less/*.less",
19
- "test": "npm run lint"
20
+ "test": "npm run lint",
21
+ "build": "lessc less/chip.less css/chip.css --autoprefix"
20
22
  },
21
23
  "dependencies": {
22
- "@sb1/ffe-core": "^29.1.4"
24
+ "@sb1/ffe-core": "^29.2.0"
23
25
  },
24
26
  "devDependencies": {
25
27
  "@sb1/ffe-buildtool": "^0.9.0"
@@ -27,5 +29,5 @@
27
29
  "publishConfig": {
28
30
  "access": "public"
29
31
  },
30
- "gitHead": "d27089e01efb5feed58df9f4acd48981a8dd9e6f"
32
+ "gitHead": "55ee3d40abaef9433c55aa993889e67c3f5c5abd"
31
33
  }