7
7
Link ,
8
8
Modal ,
9
9
Paragraph ,
10
+ Textfield ,
10
11
} from '@digdir/designsystemet-react' ;
11
12
import { createTokens } from '@digdir/designsystemet/tokens/create.js' ;
12
13
import { CodeSnippet } from '@repo/components' ;
@@ -38,13 +39,15 @@ export const TokenModal = ({
38
39
39
40
const [ lightThemeSnippet , setLightThemeSnippet ] = useState ( '' ) ;
40
41
const [ darkThemeSnippet , setDarkThemeSnippet ] = useState ( '' ) ;
42
+ const [ themeName , setThemeName ] = useState ( 'theme' ) ;
41
43
42
44
const cliSnippet = `npx @digdir/designsystemet tokens create \\
43
45
--accent "${ accentColor } " \\
44
46
--neutral "${ neutralColor } " \\
45
47
--brand1 "${ brand1Color } " \\
46
48
--brand2 "${ brand2Color } " \\
47
49
--brand3 "${ brand3Color } " \\
50
+ --theme "${ themeName } " \\
48
51
--write
49
52
` ;
50
53
@@ -58,6 +61,7 @@ export const TokenModal = ({
58
61
brand3 : brand3Color ,
59
62
} ,
60
63
typography : { fontFamily : 'Inter' } ,
64
+ themeName : 'theme' ,
61
65
} ) ;
62
66
63
67
setLightThemeSnippet ( toFigmaSnippet ( tokens . colors . light . theme ) ) ;
@@ -93,6 +97,20 @@ export const TokenModal = ({
93
97
< Heading level = { 3 } size = 'xs' spacing >
94
98
Alt 1. Design tokens
95
99
</ Heading >
100
+ < Textfield
101
+ label = 'Navn på tema'
102
+ description = "Kun bokstaver, tall og bindestrek. Eks: 'mitt-tema'"
103
+ value = { themeName }
104
+ onChange = { ( e ) => {
105
+ const value = e . currentTarget . value
106
+ . replace ( / \s + / g, '-' )
107
+ . replace ( / [ ^ A - Z 0 - 9 - ] + / gi, '' )
108
+ . toLowerCase ( ) ;
109
+
110
+ setThemeName ( value ) ;
111
+ } }
112
+ style = { { marginBlock : 'var(--ds-spacing-4)' } }
113
+ > </ Textfield >
96
114
< Paragraph spacing >
97
115
Kopier kommandosnutten under og kjør på maskinen din for å generere
98
116
alle design tokens (json-filer). Sørg for at du har{ ' ' }
@@ -105,7 +123,7 @@ export const TokenModal = ({
105
123
className = { classes . snippet }
106
124
style = { { marginBottom : 'var(--ds-spacing-8)' } }
107
125
>
108
- < CodeSnippet language = 'js '> { cliSnippet } </ CodeSnippet >
126
+ < CodeSnippet syntax = 'shell '> { cliSnippet } </ CodeSnippet >
109
127
</ div >
110
128
< Heading level = { 3 } size = 'xs' spacing >
111
129
Alt 2. Figma plugin
@@ -138,15 +156,15 @@ export const TokenModal = ({
138
156
Light Mode
139
157
</ Heading >
140
158
< div className = { classes . snippet } >
141
- < CodeSnippet language = 'js ' > { lightThemeSnippet } </ CodeSnippet >
159
+ < CodeSnippet language = 'json ' > { lightThemeSnippet } </ CodeSnippet >
142
160
</ div >
143
161
</ div >
144
162
< div className = { classes . column } >
145
163
< Heading level = { 4 } size = '2xs' spacing >
146
164
Dark Mode
147
165
</ Heading >
148
166
< div className = { classes . snippet } >
149
- < CodeSnippet language = 'js ' > { darkThemeSnippet } </ CodeSnippet >
167
+ < CodeSnippet language = 'json ' > { darkThemeSnippet } </ CodeSnippet >
150
168
</ div >
151
169
</ div >
152
170
</ div >
0 commit comments