diff --git a/web/src/app.css b/web/src/app.css index 96639845b5..3da1f70b87 100644 --- a/web/src/app.css +++ b/web/src/app.css @@ -1,9 +1,8 @@ @import 'tailwindcss'; @import '@immich/ui/theme/default.css'; +@source "../node_modules/@immich/ui"; /* @import '/usr/ui/dist/theme/default.css'; */ -@config '../tailwind.config.js'; - @utility immich-form-input { @apply rounded-xl bg-slate-200 px-3 py-3 text-sm focus:border-immich-primary disabled:cursor-not-allowed disabled:bg-gray-400 disabled:text-gray-100 dark:bg-gray-600 dark:text-immich-dark-fg dark:disabled:bg-gray-800 dark:disabled:text-gray-200; } @@ -27,8 +26,48 @@ scrollbar-gutter: stable both-edges; } +@utility grid-auto-fit-* { + grid-template-columns: repeat(auto-fit, minmax(min(calc(var(--spacing) * --value(number)), 100%), 1fr)); +} + +@utility grid-auto-fill-* { + grid-template-columns: repeat(auto-fill, minmax(min(calc(var(--spacing) * --value(number)), 100%), 1fr)); +} + @custom-variant dark (&:where(.dark, .dark *)); +@theme inline { + --color-immich-primary: rgb(var(--immich-primary)); + --color-immich-bg: rgb(var(--immich-bg)); + --color-immich-fg: rgb(var(--immich-fg)); + --color-immich-gray: rgb(var(--immich-gray)); + --color-immich-error: rgb(var(--immich-error)); + --color-immich-success: rgb(var(--immich-success)); + --color-immich-warning: rgb(var(--immich-warning)); + + --color-immich-dark-primary: rgb(var(--immich-dark-primary)); + --color-immich-dark-bg: rgb(var(--immich-dark-bg)); + --color-immich-dark-fg: rgb(var(--immich-dark-fg)); + --color-immich-dark-gray: rgb(var(--immich-dark-gray)); + --color-immich-dark-error: rgb(var(--immich-dark-error)); + --color-immich-dark-success: rgb(var(--immich-dark-success)); + --color-immich-dark-warning: rgb(var(--immich-dark-warning)); +} + +@theme { + --font-immich-mono: Overpass Mono, monospace; + + --spacing-18: 4.5rem; + + --breakpoint-tall: 800px; + --breakpoint-2xl: 1535px; + --breakpoint-xl: 1279px; + --breakpoint-lg: 1023px; + --breakpoint-md: 767px; + --breakpoint-sm: 639px; + --breakpoint-sidebar: 850px; +} + @layer base { :root { /* light */ diff --git a/web/tailwind.config.js b/web/tailwind.config.js deleted file mode 100644 index 350f03ebfd..0000000000 --- a/web/tailwind.config.js +++ /dev/null @@ -1,63 +0,0 @@ -import plugin from 'tailwindcss/plugin'; - -/** @type {import('tailwindcss').Config} */ -export default { - content: [ - './src/**/*.{html,js,svelte,ts}', - './node_modules/@immich/ui/dist/**/*.{svelte,js}', - '../../ui/src/**/*.{html,js,svelte,ts}', - ], - theme: { - extend: { - colors: { - // Light Theme - 'immich-primary': 'rgb(var(--immich-primary) / )', - 'immich-bg': 'rgb(var(--immich-bg) / )', - 'immich-fg': 'rgb(var(--immich-fg) / )', - 'immich-gray': 'rgb(var(--immich-gray) / )', - 'immich-error': 'rgb(var(--immich-error) / )', - 'immich-success': 'rgb(var(--immich-success) / )', - 'immich-warning': 'rgb(var(--immich-warning) / )', - - // Dark Theme - 'immich-dark-primary': 'rgb(var(--immich-dark-primary) / )', - 'immich-dark-bg': 'rgb(var(--immich-dark-bg) / )', - 'immich-dark-fg': 'rgb(var(--immich-dark-fg) / )', - 'immich-dark-gray': 'rgb(var(--immich-dark-gray) / )', - 'immich-dark-error': 'rgb(var(--immich-dark-error) / )', - 'immich-dark-success': 'rgb(var(--immich-dark-success) / )', - 'immich-dark-warning': 'rgb(var(--immich-dark-warning) / )', - }, - fontFamily: { - 'immich-mono': ['Overpass Mono', 'monospace'], - }, - spacing: { - 18: '4.5rem', - }, - screens: { - tall: { raw: '(min-height: 800px)' }, - 'max-2xl': { max: '1535px' }, - 'max-xl': { max: '1279px' }, - 'max-lg': { max: '1023px' }, - 'max-md': { max: '767px' }, - 'max-sm': { max: '639px' }, - sidebar: { min: '850px' }, - }, - }, - }, - plugins: [ - plugin(({ matchUtilities, theme }) => { - matchUtilities( - { - 'grid-auto-fit': (value) => ({ - gridTemplateColumns: `repeat(auto-fit, minmax(min(${value}, 100%), 1fr))`, - }), - 'grid-auto-fill': (value) => ({ - gridTemplateColumns: `repeat(auto-fill, minmax(min(${value}, 100%), 1fr))`, - }), - }, - { values: theme('width') }, - ); - }), - ], -};