@n3wth/ui 0.1.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 (96) hide show
  1. package/dist/atoms/Badge/Badge.d.ts +8 -0
  2. package/dist/atoms/Badge/Badge.d.ts.map +1 -0
  3. package/dist/atoms/Badge/index.d.ts +3 -0
  4. package/dist/atoms/Badge/index.d.ts.map +1 -0
  5. package/dist/atoms/Button/Button.d.ts +12 -0
  6. package/dist/atoms/Button/Button.d.ts.map +1 -0
  7. package/dist/atoms/Button/index.d.ts +3 -0
  8. package/dist/atoms/Button/index.d.ts.map +1 -0
  9. package/dist/atoms/Icon/Icon.d.ts +8 -0
  10. package/dist/atoms/Icon/Icon.d.ts.map +1 -0
  11. package/dist/atoms/Icon/index.d.ts +3 -0
  12. package/dist/atoms/Icon/index.d.ts.map +1 -0
  13. package/dist/atoms/Input/Input.d.ts +10 -0
  14. package/dist/atoms/Input/Input.d.ts.map +1 -0
  15. package/dist/atoms/Input/index.d.ts +3 -0
  16. package/dist/atoms/Input/index.d.ts.map +1 -0
  17. package/dist/atoms/index.d.ts +9 -0
  18. package/dist/atoms/index.d.ts.map +1 -0
  19. package/dist/fonts/Geist-Medium.woff2 +0 -0
  20. package/dist/fonts/Geist-Regular.woff2 +0 -0
  21. package/dist/fonts/Geist-SemiBold.woff2 +0 -0
  22. package/dist/fonts/GeistMono-Medium.woff2 +0 -0
  23. package/dist/fonts/GeistMono-Regular.woff2 +0 -0
  24. package/dist/fonts/MonaSans-Variable-Italic.woff2 +0 -0
  25. package/dist/fonts/MonaSans-Variable.woff2 +0 -0
  26. package/dist/hooks/index.d.ts +7 -0
  27. package/dist/hooks/index.d.ts.map +1 -0
  28. package/dist/hooks/useKeyboardShortcuts.d.ts +17 -0
  29. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  30. package/dist/hooks/useMediaQuery.d.ts +5 -0
  31. package/dist/hooks/useMediaQuery.d.ts.map +1 -0
  32. package/dist/hooks/useReducedMotion.d.ts +2 -0
  33. package/dist/hooks/useReducedMotion.d.ts.map +1 -0
  34. package/dist/hooks/useTheme.d.ts +15 -0
  35. package/dist/hooks/useTheme.d.ts.map +1 -0
  36. package/dist/index.d.ts +33 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +3275 -0
  39. package/dist/molecules/Card/Card.d.ts +29 -0
  40. package/dist/molecules/Card/Card.d.ts.map +1 -0
  41. package/dist/molecules/Card/index.d.ts +3 -0
  42. package/dist/molecules/Card/index.d.ts.map +1 -0
  43. package/dist/molecules/CommandBox/CommandBox.d.ts +9 -0
  44. package/dist/molecules/CommandBox/CommandBox.d.ts.map +1 -0
  45. package/dist/molecules/CommandBox/index.d.ts +3 -0
  46. package/dist/molecules/CommandBox/index.d.ts.map +1 -0
  47. package/dist/molecules/NavLink/NavLink.d.ts +8 -0
  48. package/dist/molecules/NavLink/NavLink.d.ts.map +1 -0
  49. package/dist/molecules/NavLink/index.d.ts +3 -0
  50. package/dist/molecules/NavLink/index.d.ts.map +1 -0
  51. package/dist/molecules/ThemeToggle/ThemeToggle.d.ts +8 -0
  52. package/dist/molecules/ThemeToggle/ThemeToggle.d.ts.map +1 -0
  53. package/dist/molecules/ThemeToggle/index.d.ts +3 -0
  54. package/dist/molecules/ThemeToggle/index.d.ts.map +1 -0
  55. package/dist/molecules/index.d.ts +9 -0
  56. package/dist/molecules/index.d.ts.map +1 -0
  57. package/dist/organisms/Footer/Footer.d.ts +23 -0
  58. package/dist/organisms/Footer/Footer.d.ts.map +1 -0
  59. package/dist/organisms/Footer/index.d.ts +3 -0
  60. package/dist/organisms/Footer/index.d.ts.map +1 -0
  61. package/dist/organisms/Hero/Hero.d.ts +17 -0
  62. package/dist/organisms/Hero/Hero.d.ts.map +1 -0
  63. package/dist/organisms/Hero/index.d.ts +3 -0
  64. package/dist/organisms/Hero/index.d.ts.map +1 -0
  65. package/dist/organisms/Nav/Nav.d.ts +19 -0
  66. package/dist/organisms/Nav/Nav.d.ts.map +1 -0
  67. package/dist/organisms/Nav/index.d.ts +3 -0
  68. package/dist/organisms/Nav/index.d.ts.map +1 -0
  69. package/dist/organisms/Section/Section.d.ts +15 -0
  70. package/dist/organisms/Section/Section.d.ts.map +1 -0
  71. package/dist/organisms/Section/index.d.ts +3 -0
  72. package/dist/organisms/Section/index.d.ts.map +1 -0
  73. package/dist/organisms/index.d.ts +9 -0
  74. package/dist/organisms/index.d.ts.map +1 -0
  75. package/dist/styles.css +851 -0
  76. package/dist/tokens/colors.d.ts +56 -0
  77. package/dist/tokens/colors.d.ts.map +1 -0
  78. package/dist/tokens/effects.d.ts +20 -0
  79. package/dist/tokens/effects.d.ts.map +1 -0
  80. package/dist/tokens/index.d.ts +5 -0
  81. package/dist/tokens/index.d.ts.map +1 -0
  82. package/dist/tokens/spacing.d.ts +28 -0
  83. package/dist/tokens/spacing.d.ts.map +1 -0
  84. package/dist/tokens/typography.d.ts +46 -0
  85. package/dist/tokens/typography.d.ts.map +1 -0
  86. package/dist/utils/cn.d.ts +3 -0
  87. package/dist/utils/cn.d.ts.map +1 -0
  88. package/package.json +61 -0
  89. package/public/fonts/Geist-Medium.woff2 +0 -0
  90. package/public/fonts/Geist-Regular.woff2 +0 -0
  91. package/public/fonts/Geist-SemiBold.woff2 +0 -0
  92. package/public/fonts/GeistMono-Medium.woff2 +0 -0
  93. package/public/fonts/GeistMono-Regular.woff2 +0 -0
  94. package/public/fonts/MonaSans-Variable-Italic.woff2 +0 -0
  95. package/public/fonts/MonaSans-Variable.woff2 +0 -0
  96. package/tailwind.preset.js +59 -0
@@ -0,0 +1,56 @@
1
+ export declare const colors: {
2
+ readonly dark: {
3
+ readonly bg: "#000000";
4
+ readonly bgSecondary: "#0a0a0a";
5
+ readonly white: "#ffffff";
6
+ readonly grey: {
7
+ readonly 100: "#f5f5f7";
8
+ readonly 200: "#e8e8ed";
9
+ readonly 300: "#c7c7cc";
10
+ readonly 400: "#86868b";
11
+ readonly 600: "#6e6e73";
12
+ readonly 800: "#1d1d1f";
13
+ };
14
+ readonly accent: "#ffffff";
15
+ readonly accentSoft: "rgba(255, 255, 255, 0.15)";
16
+ readonly glass: {
17
+ readonly bg: "rgba(255, 255, 255, 0.05)";
18
+ readonly border: "rgba(255, 255, 255, 0.1)";
19
+ readonly highlight: "rgba(255, 255, 255, 0.15)";
20
+ };
21
+ readonly category: {
22
+ readonly sage: "#30d158";
23
+ readonly coral: "#ff6961";
24
+ readonly mint: "#64d2ff";
25
+ readonly gold: "#ffd60a";
26
+ };
27
+ };
28
+ readonly light: {
29
+ readonly bg: "#ffffff";
30
+ readonly bgSecondary: "#f5f5f7";
31
+ readonly white: "#1d1d1f";
32
+ readonly grey: {
33
+ readonly 100: "#1d1d1f";
34
+ readonly 200: "#3a3a3c";
35
+ readonly 300: "#48484a";
36
+ readonly 400: "#636366";
37
+ readonly 600: "#8e8e93";
38
+ readonly 800: "#e5e5ea";
39
+ };
40
+ readonly accent: "#1d1d1f";
41
+ readonly accentSoft: "rgba(0, 0, 0, 0.1)";
42
+ readonly glass: {
43
+ readonly bg: "rgba(0, 0, 0, 0.03)";
44
+ readonly border: "rgba(0, 0, 0, 0.08)";
45
+ readonly highlight: "rgba(0, 0, 0, 0.12)";
46
+ };
47
+ readonly category: {
48
+ readonly sage: "#248a3d";
49
+ readonly coral: "#d70015";
50
+ readonly mint: "#0071e3";
51
+ readonly gold: "#b25000";
52
+ };
53
+ };
54
+ };
55
+ export type ColorMode = keyof typeof colors;
56
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDT,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAA"}
@@ -0,0 +1,20 @@
1
+ export declare const effects: {
2
+ readonly transition: {
3
+ readonly fast: "0.15s cubic-bezier(0.4, 0, 0.2, 1)";
4
+ readonly base: "0.2s cubic-bezier(0.4, 0, 0.2, 1)";
5
+ readonly slow: "0.3s cubic-bezier(0.4, 0, 0.2, 1)";
6
+ readonly spring: "0.35s cubic-bezier(0.4, 0, 0.2, 1)";
7
+ };
8
+ readonly backdropBlur: {
9
+ readonly sm: "8px";
10
+ readonly md: "12px";
11
+ readonly lg: "20px";
12
+ readonly xl: "40px";
13
+ };
14
+ readonly scale: {
15
+ readonly press: "0.96";
16
+ readonly hover: "1.02";
17
+ readonly active: "1.05";
18
+ };
19
+ };
20
+ //# sourceMappingURL=effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/tokens/effects.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;CAqBV,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './colors';
2
+ export * from './typography';
3
+ export * from './spacing';
4
+ export * from './effects';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,28 @@
1
+ export declare const spacing: {
2
+ readonly px: "1px";
3
+ readonly 0: "0";
4
+ readonly 0.5: "0.125rem";
5
+ readonly 1: "0.25rem";
6
+ readonly 2: "0.5rem";
7
+ readonly 3: "0.75rem";
8
+ readonly 4: "1rem";
9
+ readonly 5: "1.25rem";
10
+ readonly 6: "1.5rem";
11
+ readonly 8: "2rem";
12
+ readonly 10: "2.5rem";
13
+ readonly 12: "3rem";
14
+ readonly 16: "4rem";
15
+ readonly 20: "5rem";
16
+ readonly 24: "6rem";
17
+ readonly 32: "8rem";
18
+ };
19
+ export declare const borderRadius: {
20
+ readonly none: "0";
21
+ readonly sm: "0.25rem";
22
+ readonly md: "0.5rem";
23
+ readonly lg: "1rem";
24
+ readonly xl: "1.25rem";
25
+ readonly '2xl': "1.5rem";
26
+ readonly full: "9999px";
27
+ };
28
+ //# sourceMappingURL=spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../src/tokens/spacing.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAiBV,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAA"}
@@ -0,0 +1,46 @@
1
+ export declare const typography: {
2
+ readonly fontFamily: {
3
+ readonly display: "'Mona Sans', system-ui, sans-serif";
4
+ readonly sans: "'Geist Sans', system-ui, sans-serif";
5
+ readonly mono: "'Geist Mono', ui-monospace, 'SF Mono', Menlo, Monaco, monospace";
6
+ };
7
+ readonly fontSize: {
8
+ readonly xs: "0.6875rem";
9
+ readonly sm: "0.875rem";
10
+ readonly base: "1rem";
11
+ readonly lg: "1.125rem";
12
+ readonly xl: "1.25rem";
13
+ readonly '2xl': "1.5rem";
14
+ readonly '3xl': "2rem";
15
+ readonly '4xl': "2.5rem";
16
+ readonly '5xl': "3rem";
17
+ readonly '6xl': "4rem";
18
+ readonly '7xl': "5rem";
19
+ readonly '8xl': "6rem";
20
+ readonly '9xl': "8rem";
21
+ readonly '10xl': "10rem";
22
+ };
23
+ readonly fontWeight: {
24
+ readonly light: "300";
25
+ readonly normal: "400";
26
+ readonly medium: "500";
27
+ readonly semibold: "600";
28
+ readonly bold: "700";
29
+ readonly extrabold: "800";
30
+ readonly black: "900";
31
+ };
32
+ readonly letterSpacing: {
33
+ readonly tighter: "-0.05em";
34
+ readonly tight: "-0.025em";
35
+ readonly normal: "0";
36
+ readonly wide: "0.08em";
37
+ };
38
+ readonly lineHeight: {
39
+ readonly none: "1";
40
+ readonly tight: "1.1";
41
+ readonly snug: "1.25";
42
+ readonly normal: "1.5";
43
+ readonly relaxed: "1.625";
44
+ };
45
+ };
46
+ //# sourceMappingURL=typography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Cb,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@n3wth/ui",
3
+ "version": "0.1.0",
4
+ "description": "Atomic design system for Newth sites - flat, minimal, iOS-inspired",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./styles": "./dist/styles.css",
15
+ "./tailwind": "./tailwind.preset.js"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "tailwind.preset.js",
20
+ "public"
21
+ ],
22
+ "scripts": {
23
+ "dev": "vite build --watch",
24
+ "demo": "vite --config vite.demo.config.ts",
25
+ "demo:build": "vite build --config vite.demo.config.ts",
26
+ "build": "tsc && vite build && node -e \"const fs=require('fs');const css=fs.readFileSync('src/styles.css','utf8').replace(/@import 'tailwindcss';\\n\\n/,'');fs.writeFileSync('dist/styles.css',css)\"",
27
+ "lint": "eslint src",
28
+ "prepublishOnly": "npm run build"
29
+ },
30
+ "dependencies": {
31
+ "clsx": "^2.1.0",
32
+ "tailwind-merge": "^2.5.0"
33
+ },
34
+ "peerDependencies": {
35
+ "react": "^18.0.0 || ^19.0.0",
36
+ "react-dom": "^18.0.0 || ^19.0.0"
37
+ },
38
+ "devDependencies": {
39
+ "@tailwindcss/vite": "^4.1.18",
40
+ "@types/react": "^19.0.0",
41
+ "@types/react-dom": "^19.0.0",
42
+ "@vitejs/plugin-react": "^4.3.0",
43
+ "react": "^19.2.4",
44
+ "react-dom": "^19.2.4",
45
+ "tailwindcss": "^4.1.18",
46
+ "typescript": "^5.6.0",
47
+ "vite": "^6.0.0",
48
+ "vite-plugin-dts": "^4.0.0"
49
+ },
50
+ "keywords": [
51
+ "design-system",
52
+ "react",
53
+ "tailwind",
54
+ "atomic-design"
55
+ ],
56
+ "license": "MIT",
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "https://github.com/n3wth/ui"
60
+ }
61
+ }
Binary file
Binary file
@@ -0,0 +1,59 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ theme: {
4
+ extend: {
5
+ fontFamily: {
6
+ display: ['Mona Sans', 'system-ui', 'sans-serif'],
7
+ sans: ['Geist Sans', 'system-ui', 'sans-serif'],
8
+ mono: ['Geist Mono', 'ui-monospace', 'SF Mono', 'Menlo', 'Monaco', 'monospace'],
9
+ },
10
+ colors: {
11
+ bg: 'var(--color-bg)',
12
+ 'bg-secondary': 'var(--color-bg-secondary)',
13
+ white: 'var(--color-white)',
14
+ grey: {
15
+ 100: 'var(--color-grey-100)',
16
+ 200: 'var(--color-grey-200)',
17
+ 300: 'var(--color-grey-300)',
18
+ 400: 'var(--color-grey-400)',
19
+ 600: 'var(--color-grey-600)',
20
+ 800: 'var(--color-grey-800)',
21
+ },
22
+ accent: 'var(--color-accent)',
23
+ 'accent-soft': 'var(--color-accent-soft)',
24
+ sage: 'var(--color-sage)',
25
+ coral: 'var(--color-coral)',
26
+ mint: 'var(--color-mint)',
27
+ gold: 'var(--color-gold)',
28
+ glass: {
29
+ bg: 'var(--glass-bg)',
30
+ border: 'var(--glass-border)',
31
+ highlight: 'var(--glass-highlight)',
32
+ },
33
+ },
34
+ borderRadius: {
35
+ DEFAULT: '1rem',
36
+ card: '1.25rem',
37
+ pill: '9999px',
38
+ },
39
+ transitionTimingFunction: {
40
+ 'out-expo': 'cubic-bezier(0.16, 1, 0.3, 1)',
41
+ 'spring': 'cubic-bezier(0.4, 0, 0.2, 1)',
42
+ },
43
+ animation: {
44
+ 'fade-up': 'fadeUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards',
45
+ 'gradient-shift': 'gradientShift 8s ease-in-out infinite',
46
+ },
47
+ keyframes: {
48
+ fadeUp: {
49
+ from: { opacity: '0', transform: 'translateY(24px)' },
50
+ to: { opacity: '1', transform: 'translateY(0)' },
51
+ },
52
+ gradientShift: {
53
+ '0%, 100%': { backgroundPosition: '0% 50%' },
54
+ '50%': { backgroundPosition: '100% 50%' },
55
+ },
56
+ },
57
+ },
58
+ },
59
+ }