Chuyển đến nội dung chính

Frutjam's color system uses semantic CSS tokens designed to meet WCAG AA contrast ratios out of the box. No JavaScript, dark mode aware, compatible with Tailwind CSS v4. Works with Django, HTMX, Laravel, and any CSS-only stack.

Frutjam sử dụng các thuộc tính tùy chỉnh CSS làm mã thông báo thiết kế cho tất cả các màu. Mỗi màu được xác định theo chủ đề và tự động hoạt động với các lớp tiện ích CSS của Tailwind — không cần cấu hình bổ sung. Chỉ CSS, không cần JavaScript. Độ tương phản WCAG AA được đảm bảo trên mọi cặp màu, hoạt động với Django, HTMX, Laravel, React và bất kỳ dự án Tailwind CSS v4 nào.

Tên màu

Frutjam xác định các vai trò màu ngữ nghĩa sau đây. Mỗi màu có một mã thông báo on-{color} phù hợp để văn bản nền trước có thể truy cập được.

Đảm bảo độ tương phản WCAG AA. Mỗi cặp on-{color} đều được điều chỉnh bằng tay trong OKLCH để đáp ứng các yêu cầu về độ tương phản WCAG AA. Không giống như các thư viện tự động tính toán màu nền trước, Frutjam cung cấp cho bạn các cặp rõ ràng, đã được xác minh — để các thành phần của bạn có thể truy cập được theo thiết kế chứ không phải ngẫu nhiên.
Màu sắc Mã thông báo Mục đích
base--color-baseNền trang
neutral--color-neutralBề mặt, thanh bên, lớp phủ
primary--color-primaryMàu thương hiệu chính
secondary--color-secondaryMàu thương hiệu phụ
accent--color-accentMàu nhấn/nổi bật
info--color-infotin nhắn thông tin
success--color-successTrạng thái thành công
warning--color-warningTrạng thái cảnh báo
error--color-errorLỗi và trạng thái phá hủy

Các lớp tiện ích màu sắc

Tất cả các màu Frutjam đều hoạt động với mọi tiện ích màu CSS Tailwind. Thay thế {color} bằng bất kỳ tên màu nào từ bảng trên.

Lớp học Sự miêu tả
bg-{color}Màu nền
text-{color}Màu văn bản
border-{color}Màu viền
ring-{color}Màu nhẫn
outline-{color}Màu phác thảo
shadow-{color}Màu bóng
fill-{color}Màu tô SVG
stroke-{color}Màu nét SVG
decoration-{color}Màu sắc trang trí văn bản
caret-{color}Màu dấu mũ đầu vào
placeholder-{color}Màu văn bản giữ chỗ
divide-{color}Màu đường viền ngăn cách
Primary background
Secondary background
Primary border and text
html
1
2
3
<div class="bg-primary text-on-primary p-4 rounded">Primary background</div>
<div class="bg-secondary text-on-secondary p-4 rounded">Secondary background</div>
<div class="border border-primary text-primary p-4 rounded">Primary border and text</div>

Công cụ sửa đổi độ mờ

Kiểm soát độ mờ của màu bằng công cụ sửa đổi /{value}, giống như bất kỳ màu Tailwind nào.

10% primary background
20% primary background
60% opacity text
html
1
2
3
<div class="bg-primary/10 text-primary p-4 rounded">10% primary background</div>
<div class="bg-primary/20 text-primary p-4 rounded">20% primary background</div>
<div class="text-on-base/60 p-4">60% opacity text</div>

Biến CSS chủ đề

Đây là các mã thông báo gốc mà bạn xác định khi tạo chủ đề tùy chỉnh. Tất cả các mã thông báo màu khác được tính toán tự động từ những mã này.

Biến CSS Sự miêu tả
--scheme-colorBảng màu: sáng hoặc tối
--border-radiusBán kính đường viền cơ sở cho các thành phần
--color-baseMàu nền trang
--color-on-baseMàu văn bản mặc định trên nền cơ sở
--color-neutralMàu bề mặt trung tính
--color-on-neutralMàu văn bản trên bề mặt trung tính
--color-primaryMàu thương hiệu chính
--color-on-primaryMàu văn bản trên nền chính
--color-secondaryMàu thương hiệu phụ
--color-on-secondaryMàu văn bản trên nền phụ
--color-accentMàu nhấn
--color-on-accentMàu văn bản trên nền có điểm nhấn
--color-infoMàu thông tin
--color-on-infoMàu văn bản trên nền thông tin
--color-successMàu thành công
--color-on-successMàu văn bản trên nền thành công
--color-warningMàu cảnh báo
--color-on-warningMàu văn bản trên nền cảnh báo
--color-errorLỗi màu
--color-on-errorText color on error backgrounds

Computed Color Tokens

Frutjam automatically computes these tokens from your root theme variables — you don't set them manually. They are available for use in custom CSS.

Scale (50–950)

Every color generates a full 11-step tint/shade scale. Replace {color} with any color name.

Biến CSS Sự miêu tả
--color-{color}-50Lightest tint (4% color mix)
--color-{color}-100Very light tint
--color-{color}-200Light tint
--color-{color}-300Medium-light tint
--color-{color}-400Slight tint
--color-{color}-500Base color (same as --color-{color})
--color-{color}-600Slight shade
--color-{color}-700Medium shade
--color-{color}-800Dark shade
--color-{color}-900Very dark shade
--color-{color}-950Darkest shade

Soft & Active

State-aware variants for interactive elements, automatically adapting to light and dark themes.

Biến CSS Sự miêu tả
--color-{color}-softSubtle tinted background for soft variants
--color-on-{color}-softText color for use on soft backgrounds
--color-{color}-activeDarkened/lightened shade for hover and active states
--color-bodyComputed body text color (slightly softened from on-base)

Custom Theme Example

Override root tokens to create a custom theme. Frutjam computes all scales and states automatically.

css
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@import "tailwindcss";
@plugin "frutjam";

[data-theme="mytheme"] {
  --scheme-color: light;
  --border-radius: 0.5rem;

  --color-base: oklch(98% 0 0);
  --color-on-base: oklch(15% 0 0);

  --color-neutral: oklch(20% 0 0);
  --color-on-neutral: oklch(98% 0 0);

  --color-primary: oklch(55% 0.25 260);
  --color-on-primary: oklch(98% 0 0);

  --color-secondary: oklch(60% 0.20 320);
  --color-on-secondary: oklch(98% 0 0);

  --color-accent: oklch(65% 0.22 180);
  --color-on-accent: oklch(15% 0 0);

  --color-info: oklch(68% 0.17 237);
  --color-on-info: oklch(15% 0 0);

  --color-success: oklch(75% 0.20 150);
  --color-on-success: oklch(15% 0 0);

  --color-warning: oklch(82% 0.19 90);
  --color-on-warning: oklch(15% 0 0);

  --color-error: oklch(58% 0.24 27);
  --color-on-error: oklch(98% 0 0);
}