@shuriken-ui/tailwind 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +78 -0
- package/src/colors.ts +1 -0
- package/src/index.ts +7 -0
- package/src/plugins/components.ts +170 -0
- package/src/preset/index.ts +135 -0
- package/src/tailwind.config.ts +7 -0
package/package.json
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
{
|
2
|
+
"name": "@shuriken-ui/tailwind",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"license": "MIT",
|
5
|
+
"author": "Css Ninja <hello@cssninja.io> (https://cssninja.io)",
|
6
|
+
"repository": "shuriken-ui/tailwind",
|
7
|
+
"bugs": "https://github.com/shuriken-ui/tailwind/issues",
|
8
|
+
"homepage": "https://github.com/shuriken-ui/tailwind",
|
9
|
+
"keywords": [
|
10
|
+
"nuxt",
|
11
|
+
"nuxt3",
|
12
|
+
"ui",
|
13
|
+
"framework",
|
14
|
+
"library",
|
15
|
+
"components",
|
16
|
+
"tailwind",
|
17
|
+
"tailwindcss",
|
18
|
+
"design-system",
|
19
|
+
"module"
|
20
|
+
],
|
21
|
+
"type": "module",
|
22
|
+
"exports": {
|
23
|
+
".": "./src/index.ts",
|
24
|
+
"./preset": "./src/preset/index.ts",
|
25
|
+
"./config": "./src/tailwind.config.ts",
|
26
|
+
"./colors": "./src/colors.ts"
|
27
|
+
},
|
28
|
+
"files": [
|
29
|
+
"src"
|
30
|
+
],
|
31
|
+
"scripts": {
|
32
|
+
"lint": "run-s lint:eslint:fix lint:prettier:fix",
|
33
|
+
"lint:prettier": "prettier --check \"./**/*.(ts|vue|css|scss|md)\"",
|
34
|
+
"lint:prettier:fix": "prettier --write \"./**/*.(ts|vue|css|scss|md)\"",
|
35
|
+
"lint:eslint": "eslint -c .eslintrc.cjs --ext .vue,.ts .",
|
36
|
+
"lint:eslint:fix": "eslint -c .eslintrc.cjs --fix --ext .vue,.ts .",
|
37
|
+
"test": "run-p test:*",
|
38
|
+
"test:lint": "run-s lint:eslint lint:prettier",
|
39
|
+
"release": "run-s test release:*",
|
40
|
+
"release:standard-version": "standard-version",
|
41
|
+
"release:publish": "git push --follow-tags origin main && npm publish",
|
42
|
+
"prepare": "simple-git-hooks"
|
43
|
+
},
|
44
|
+
"dependencies": {
|
45
|
+
"@tailwindcss/aspect-ratio": "^0.4.2",
|
46
|
+
"@tailwindcss/forms": "^0.5.3",
|
47
|
+
"@tailwindcss/typography": "^0.5.9",
|
48
|
+
"defu": "^6.1.2",
|
49
|
+
"tailwindcss": "^3.3.1"
|
50
|
+
},
|
51
|
+
"devDependencies": {
|
52
|
+
"@commitlint/cli": "^17.5.1",
|
53
|
+
"@commitlint/config-conventional": "^17.4.4",
|
54
|
+
"@types/node": "18.15.11",
|
55
|
+
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
56
|
+
"commitlint": "^17.5.1",
|
57
|
+
"eslint": "8.37.0",
|
58
|
+
"eslint-config-prettier": "8.8.0",
|
59
|
+
"eslint-plugin-tailwindcss": "3.10.1",
|
60
|
+
"eslint-plugin-unicorn": "^46.0.0",
|
61
|
+
"lint-staged": "^13.2.0",
|
62
|
+
"npm-run-all": "^4.1.5",
|
63
|
+
"prettier": "^2.8.7",
|
64
|
+
"simple-git-hooks": "^2.8.1",
|
65
|
+
"standard-version": "^9.5.0",
|
66
|
+
"typescript": "^5.0.2"
|
67
|
+
},
|
68
|
+
"simple-git-hooks": {
|
69
|
+
"pre-commit": "pnpm lint-staged",
|
70
|
+
"commit-msg": "pnpm commitlint -e -V "
|
71
|
+
},
|
72
|
+
"lint-staged": {
|
73
|
+
"*.ts?(x)": [
|
74
|
+
"eslint",
|
75
|
+
"prettier --parser=typescript --write"
|
76
|
+
]
|
77
|
+
}
|
78
|
+
}
|
package/src/colors.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export {}
|
package/src/index.ts
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
2
|
+
|
3
|
+
export default plugin.withOptions(
|
4
|
+
function (options = {}) {
|
5
|
+
return function ({ addComponents }) {
|
6
|
+
addComponents({
|
7
|
+
'.placeload': {
|
8
|
+
position: 'relative',
|
9
|
+
background:
|
10
|
+
'linear-gradient( to right, rgb(0 0 0 / 7%) 8% ,rgb(0 0 0 / 15%) 18%, rgb(0 0 0 / 7%) 33%)',
|
11
|
+
backgroundSize: '1200px 104px',
|
12
|
+
},
|
13
|
+
'.dark .placeload': {
|
14
|
+
position: 'relative',
|
15
|
+
background:
|
16
|
+
'linear-gradient(to right, rgb(255 255 255 / 15%) 8%, rgb(255 255 255 / 24%) 18%, rgb(255 255 255 / 15%) 33%)',
|
17
|
+
backgroundSize: '1200px 104px',
|
18
|
+
},
|
19
|
+
})
|
20
|
+
|
21
|
+
addComponents({
|
22
|
+
'.nui-focus': {
|
23
|
+
'@apply outline-1 outline-dashed outline-offset-2': {},
|
24
|
+
'@apply outline-transparent': {},
|
25
|
+
'&:focus-within': {
|
26
|
+
'@apply outline-muted-300 dark:outline-muted-600': {},
|
27
|
+
'@apply outline-dashed ring-0': {},
|
28
|
+
},
|
29
|
+
'&:focus-visible': {
|
30
|
+
'@apply outline-2': {},
|
31
|
+
},
|
32
|
+
},
|
33
|
+
})
|
34
|
+
|
35
|
+
addComponents({
|
36
|
+
'.nui-mask': {
|
37
|
+
'mask-size': 'contain',
|
38
|
+
'mask-repeat': 'no-repeat',
|
39
|
+
'mask-position': 'center',
|
40
|
+
},
|
41
|
+
'.nui-mask-hex': {
|
42
|
+
'mask-image':
|
43
|
+
"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE4MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNjQuNzg2IDE4MS40Yy05LjE5NiAwLTIwLjA2My02LjY4Ny0yNS4wNzktMTQuMjFMMy43NjIgMTA1LjMzYy01LjAxNi04LjM2LTUuMDE2LTIwLjkgMC0yOS4yNTlsMzUuOTQ1LTYxLjg2QzQ0LjcyMyA1Ljg1MSA1NS41OSAwIDY0Ljc4NiAwaDcxLjA1NWM5LjE5NiAwIDIwLjA2MyA2LjY4OCAyNS4wNzkgMTQuMjExbDM1Ljk0NSA2MS44NmM0LjE4IDguMzYgNC4xOCAyMC44OTkgMCAyOS4yNThsLTM1Ljk0NSA2MS44NmMtNC4xOCA4LjM2LTE1Ljg4MyAxNC4yMTEtMjUuMDc5IDE0LjIxMUg2NC43ODZ6Ii8+PC9zdmc+')",
|
44
|
+
},
|
45
|
+
'.nui-mask-hexed': {
|
46
|
+
'mask-image':
|
47
|
+
"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgyIiBoZWlnaHQ9IjIwMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNLjMgNjUuNDg2YzAtOS4xOTYgNi42ODctMjAuMDYzIDE0LjIxMS0yNS4wNzhsNjEuODYtMzUuOTQ2YzguMzYtNS4wMTYgMjAuODk5LTUuMDE2IDI5LjI1OCAwbDYxLjg2IDM1Ljk0NmM4LjM2IDUuMDE1IDE0LjIxMSAxNS44ODIgMTQuMjExIDI1LjA3OHY3MS4wNTVjMCA5LjE5Ni02LjY4NyAyMC4wNjMtMTQuMjExIDI1LjA3OWwtNjEuODYgMzUuOTQ1Yy04LjM2IDQuMTgtMjAuODk5IDQuMTgtMjkuMjU4IDBsLTYxLjg2LTM1Ljk0NUM2LjE1MSAxNTcuNDQuMyAxNDUuNzM3LjMgMTM2LjU0VjY1LjQ4NnoiLz48L3N2Zz4=')",
|
48
|
+
},
|
49
|
+
'.nui-mask-deca': {
|
50
|
+
'mask-image':
|
51
|
+
"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOTYgMGw1OC43NzkgMTkuMDk4IDM2LjMyNyA1MHY2MS44MDRsLTM2LjMyNyA1MEw5NiAyMDBsLTU4Ljc3OS0xOS4wOTgtMzYuMzI3LTUwVjY5LjA5OGwzNi4zMjctNTB6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=')",
|
52
|
+
},
|
53
|
+
'.nui-mask-blob': {
|
54
|
+
'mask-image':
|
55
|
+
"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAwIDBDMjAgMCAwIDIwIDAgMTAwczIwIDEwMCAxMDAgMTAwIDEwMC0yMCAxMDAtMTAwUzE4MCAwIDEwMCAweiIvPjwvc3ZnPg==')",
|
56
|
+
},
|
57
|
+
'.nui-mask-diamond': {
|
58
|
+
'mask-image':
|
59
|
+
"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAwIDBsMTAwIDEwMC0xMDAgMTAwTDAgMTAweiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+')",
|
60
|
+
},
|
61
|
+
})
|
62
|
+
|
63
|
+
addComponents({
|
64
|
+
'.nui-text-white': {
|
65
|
+
'@apply text-white dark:text-black': {},
|
66
|
+
},
|
67
|
+
'.nui-text-50': {
|
68
|
+
'@apply text-muted-50 dark:text-muted-900': {},
|
69
|
+
},
|
70
|
+
'.nui-text-100': {
|
71
|
+
'@apply text-muted-100 dark:text-muted-900': {},
|
72
|
+
},
|
73
|
+
'.nui-text-200': {
|
74
|
+
'@apply text-muted-200 dark:text-muted-800': {},
|
75
|
+
},
|
76
|
+
'.nui-text-300': {
|
77
|
+
'@apply text-muted-300 dark:text-muted-700': {},
|
78
|
+
},
|
79
|
+
'.nui-text-400': {
|
80
|
+
'@apply text-muted-400 dark:text-muted-600': {},
|
81
|
+
},
|
82
|
+
'.nui-text-500': {
|
83
|
+
'@apply text-muted-500 dark:text-muted-500': {},
|
84
|
+
},
|
85
|
+
'.nui-text-600': {
|
86
|
+
'@apply text-muted-600 dark:text-muted-400': {},
|
87
|
+
},
|
88
|
+
'.nui-text-700': {
|
89
|
+
'@apply text-muted-700 dark:text-muted-300': {},
|
90
|
+
},
|
91
|
+
'.nui-text-800': {
|
92
|
+
'@apply text-muted-800 dark:text-muted-200': {},
|
93
|
+
},
|
94
|
+
'.nui-text-900': {
|
95
|
+
'@apply text-muted-900 dark:text-muted-100': {},
|
96
|
+
},
|
97
|
+
'.nui-text-black': {
|
98
|
+
'@apply text-black dark:text-white': {},
|
99
|
+
},
|
100
|
+
})
|
101
|
+
|
102
|
+
addComponents({
|
103
|
+
'.nui-bg-white': {
|
104
|
+
'@apply bg-white dark:bg-muted-900': {},
|
105
|
+
},
|
106
|
+
'.nui-bg-50': {
|
107
|
+
'@apply bg-muted-50 dark:bg-muted-900': {},
|
108
|
+
},
|
109
|
+
'.nui-bg-100': {
|
110
|
+
'@apply bg-muted-100 dark:bg-muted-900': {},
|
111
|
+
},
|
112
|
+
'.nui-bg-200': {
|
113
|
+
'@apply bg-muted-200 dark:bg-muted-800': {},
|
114
|
+
},
|
115
|
+
'.nui-bg-300': {
|
116
|
+
'@apply bg-muted-300 dark:bg-muted-700': {},
|
117
|
+
},
|
118
|
+
'.nui-bg-400': {
|
119
|
+
'@apply bg-muted-400 dark:bg-muted-600': {},
|
120
|
+
},
|
121
|
+
'.nui-bg-500': {
|
122
|
+
'@apply bg-muted-500 dark:bg-muted-500': {},
|
123
|
+
},
|
124
|
+
'.nui-bg-600': {
|
125
|
+
'@apply bg-muted-600 dark:bg-muted-400': {},
|
126
|
+
},
|
127
|
+
'.nui-bg-700': {
|
128
|
+
'@apply bg-muted-700 dark:bg-muted-300': {},
|
129
|
+
},
|
130
|
+
'.nui-bg-800': {
|
131
|
+
'@apply bg-muted-800 dark:bg-muted-200': {},
|
132
|
+
},
|
133
|
+
'.nui-bg-900': {
|
134
|
+
'@apply bg-muted-900 dark:bg-muted-100': {},
|
135
|
+
},
|
136
|
+
'.nui-bg-black': {
|
137
|
+
'@apply bg-muted-900 dark:bg-white': {},
|
138
|
+
},
|
139
|
+
})
|
140
|
+
|
141
|
+
addComponents({
|
142
|
+
'.nui-label': {
|
143
|
+
'@apply inline-block font-alt leading-none text-muted-400 dark:text-muted-400/80':
|
144
|
+
{},
|
145
|
+
},
|
146
|
+
})
|
147
|
+
|
148
|
+
addComponents({
|
149
|
+
'.nui-dropdown-divider': {
|
150
|
+
'@apply my-2 block h-px w-full border-t border-muted-200 dark:border-muted-600':
|
151
|
+
{},
|
152
|
+
},
|
153
|
+
})
|
154
|
+
|
155
|
+
addComponents({
|
156
|
+
'.nui-mark': {
|
157
|
+
'@apply bg-primary-100 text-primary-800 dark:bg-primary-800 dark:text-primary-200':
|
158
|
+
{},
|
159
|
+
},
|
160
|
+
})
|
161
|
+
}
|
162
|
+
},
|
163
|
+
function (options) {
|
164
|
+
return {
|
165
|
+
theme: {
|
166
|
+
nui: {},
|
167
|
+
},
|
168
|
+
}
|
169
|
+
}
|
170
|
+
)
|
@@ -0,0 +1,135 @@
|
|
1
|
+
import type { Config } from 'tailwindcss'
|
2
|
+
import colors from 'tailwindcss/colors'
|
3
|
+
import typography from '@tailwindcss/typography'
|
4
|
+
import aspectRatio from '@tailwindcss/aspect-ratio'
|
5
|
+
import shurikenUIComponents from '../plugins/components'
|
6
|
+
|
7
|
+
export default {
|
8
|
+
darkMode: 'class',
|
9
|
+
content: [],
|
10
|
+
plugins: [typography, aspectRatio, shurikenUIComponents],
|
11
|
+
theme: {
|
12
|
+
fontFamily: {
|
13
|
+
sans: ['Roboto Flex', 'sans-serif'],
|
14
|
+
heading: ['Inter', 'sans-serif'],
|
15
|
+
alt: ['Karla', 'sans-serif'],
|
16
|
+
mono: ['ui-monospace', 'monospace'],
|
17
|
+
},
|
18
|
+
|
19
|
+
extend: {
|
20
|
+
colors: {
|
21
|
+
muted: colors.slate,
|
22
|
+
primary: colors.violet,
|
23
|
+
info: colors.sky,
|
24
|
+
success: colors.teal,
|
25
|
+
warning: colors.amber,
|
26
|
+
danger: colors.rose,
|
27
|
+
},
|
28
|
+
screens: {
|
29
|
+
xs: { max: '639px' },
|
30
|
+
lg: '1025px',
|
31
|
+
ptablet: {
|
32
|
+
raw: '(min-width: 768px) and (max-width: 1024px) and (orientation: portrait)',
|
33
|
+
},
|
34
|
+
ltablet: {
|
35
|
+
raw: '(min-width: 768px) and (max-width: 1024px) and (orientation: landscape)',
|
36
|
+
},
|
37
|
+
},
|
38
|
+
typography: ({ theme }: any) => ({
|
39
|
+
primary: {
|
40
|
+
css: {
|
41
|
+
'--tw-prose-links': theme('colors.primary.600'),
|
42
|
+
'--tw-prose-quote-borders': theme('colors.primary.600'),
|
43
|
+
|
44
|
+
'--tw-prose-invert-links': theme('colors.primary.500'),
|
45
|
+
'--tw-prose-invert-quote-borders': theme('colors.primary.500'),
|
46
|
+
},
|
47
|
+
},
|
48
|
+
muted: {
|
49
|
+
css: {
|
50
|
+
'--tw-prose-body': theme('colors.muted.700'),
|
51
|
+
'--tw-prose-headings': theme('colors.muted.800'),
|
52
|
+
'--tw-prose-lead': theme('colors.muted.600'),
|
53
|
+
'--tw-prose-bold': theme('colors.muted.800'),
|
54
|
+
'--tw-prose-counters': theme('colors.muted.500'),
|
55
|
+
'--tw-prose-bullets': theme('colors.muted.300'),
|
56
|
+
'--tw-prose-hr': theme('colors.muted.200'),
|
57
|
+
'--tw-prose-quotes': theme('colors.muted.500'),
|
58
|
+
'--tw-prose-captions': theme('colors.muted.500'),
|
59
|
+
'--tw-prose-code': theme('colors.muted.800'),
|
60
|
+
'--tw-prose-pre-code': theme('colors.muted.800'),
|
61
|
+
'--tw-prose-pre-bg': theme('colors.muted.100'),
|
62
|
+
'--tw-prose-th-borders': theme('colors.muted.300'),
|
63
|
+
'--tw-prose-td-borders': theme('colors.muted.200'),
|
64
|
+
|
65
|
+
'--tw-prose-invert-body': theme('colors.muted.400'),
|
66
|
+
'--tw-prose-invert-headings': theme('colors.muted.100'),
|
67
|
+
'--tw-prose-invert-lead': theme('colors.muted.300'),
|
68
|
+
'--tw-prose-invert-bold': theme('colors.muted.300'),
|
69
|
+
'--tw-prose-invert-counters': theme('colors.muted.400'),
|
70
|
+
'--tw-prose-invert-bullets': theme('colors.muted.400'),
|
71
|
+
'--tw-prose-invert-hr': theme('colors.muted.800'),
|
72
|
+
'--tw-prose-invert-quotes': theme('colors.muted.200'),
|
73
|
+
'--tw-prose-invert-captions': theme('colors.muted.400'),
|
74
|
+
'--tw-prose-invert-code': theme('colors.muted.200'),
|
75
|
+
'--tw-prose-invert-pre-code': theme('colors.muted.200'),
|
76
|
+
'--tw-prose-invert-pre-bg': theme('colors.muted.800'),
|
77
|
+
'--tw-prose-invert-th-borders': theme('colors.muted.600'),
|
78
|
+
'--tw-prose-invert-td-borders': theme('colors.muted.700'),
|
79
|
+
},
|
80
|
+
},
|
81
|
+
css: {
|
82
|
+
h1: {
|
83
|
+
fontWeight: 700,
|
84
|
+
},
|
85
|
+
h2: {
|
86
|
+
fontWeight: 700,
|
87
|
+
},
|
88
|
+
h3: {
|
89
|
+
fontWeight: 500,
|
90
|
+
},
|
91
|
+
h4: {
|
92
|
+
fontWeight: 500,
|
93
|
+
},
|
94
|
+
li: {
|
95
|
+
fontSize: '1.15rem',
|
96
|
+
padding: '0.35rem 0',
|
97
|
+
},
|
98
|
+
em: {
|
99
|
+
fontSize: '1.1rem',
|
100
|
+
lineHeight: 1,
|
101
|
+
},
|
102
|
+
blockquote: {
|
103
|
+
fontSize: '1.1rem',
|
104
|
+
lineHeight: 1.4,
|
105
|
+
fontWeight: 500,
|
106
|
+
padding: '1.75rem',
|
107
|
+
},
|
108
|
+
pre: {
|
109
|
+
fontFamily: theme('fontFamily.mono'),
|
110
|
+
},
|
111
|
+
code: {
|
112
|
+
fontFamily: theme('fontFamily.mono'),
|
113
|
+
padding: '0.35rem',
|
114
|
+
fontWeight: 600,
|
115
|
+
fontSize: '0.95rem !important',
|
116
|
+
},
|
117
|
+
},
|
118
|
+
}),
|
119
|
+
keyframes: {
|
120
|
+
indeterminate: {
|
121
|
+
'0%': { 'margin-left': '-10%' },
|
122
|
+
'100%': { 'margin-left': '100%' },
|
123
|
+
},
|
124
|
+
placeload: {
|
125
|
+
'0%': { 'background-position': '-468px 0' },
|
126
|
+
'100%': { 'background-position': '468px 0' },
|
127
|
+
},
|
128
|
+
},
|
129
|
+
animation: {
|
130
|
+
indeterminate: 'indeterminate 1s cubic-bezier(0.4, 0, 0.2, 1) infinite',
|
131
|
+
placeload: 'placeload 1s linear infinite forwards',
|
132
|
+
},
|
133
|
+
},
|
134
|
+
},
|
135
|
+
} satisfies Config
|