<code class="language-erb"> <!-- ... --> </main></code>
本文與本系列先前的文章非常相似,但這次我們將使用 Tailwind 框架作為無類別名稱 CSS 框架。文章靈感來自《基於 Tailwind 的無類名 CSS》一文。
rails serve
指令前的 time
用來顯示指令執行的總時間。以下範例耗時 47 秒。 <code class="language-bash">$ rails -v Rails 8.0.0 $ time rails new classless-css-tailwind ... real 0m47.500s user 0m33.052s sys 0m4.249s</code>
Rails 8 基於其「無建置」理念,預設使用 Propshaft 作為資源管道庫,使用 Importmap 作為 JavaScript 程式庫。 Importmap 不對 JavaScript 進行任何處理。
<code class="language-bash">$ cd classless-css-tailwind && code .</code>
頁面在系列文章的第一篇文章的「常見步驟」。
app/assets/stylesheets/application.tailwind.css
<code class="language-css">/* 在顶部插入自定义的 Tailwind CSS */ /* 如果“@tailwind base”、“@tailwind components”和“@tailwind utilities”没有被注释 */ /* 选项 1:绿色 */ @import "./custom_tailwind/custom1.css"; /* 选项 2:蓝色 */ /* @import "./custom_tailwind/custom2.css"; */ /* 选项 3:来自文章“基于 Tailwind 的无类名 CSS” */ /* https://www.php.cn/link/9220e33481b237d9d5d19112688f6dd4 */ /* @import "./custom_tailwind/custom3.css"; */ /* @tailwind base; @tailwind components; @tailwind utilities; */</code>
在 app/assets/stylesheets/
目錄下建立 custom_tailwind
資料夾,以新增自訂的 Tailwind 檔案。
custom1.css
<code class="language-css">/* 概述: 统一主题变量(我们只使用 --background、--text 和 --accent 等,而不是 --background-light 和 --background-dark)。 减少 @media (prefers-color-scheme: dark) 的重复。大部分深色主题都集中在 :root 中。 我们使用变量代替直接颜色,并在某些地方利用 Tailwind 的命名。 如果您使用类(class="dark")而不是 prefers-color-scheme 来使用深色模式, 逻辑会略有不同(使用 dark:bg-*、dark:text-* 等)。 但是,根据建议,我们保留了 @media (prefers-color-scheme: dark) 以尊重用户的偏好。 1. 统一的主题变量 现在我们使用 --background、--text 和 --accent(以及其他)代替 --background-light、--background-dark 等。 这减少了重复,使代码更易于维护。 2. 减少 @media (prefers-color-scheme: dark) 的重复 几乎所有深色主题的内容都集中在一个块中,位于 :root 内。 因此,每当用户偏好深色模式时,所有变量都会被重新定义。 3. 使用补充变量 我们添加了 --background-code、--border、--form-border 和 --focus-ring,以确保所有可能根据主题变化的颜色都易于修改。 4. 优化的表单样式 我们统一了大多数表单元素,而不是将每种输入类型分成多个块。 这避免了重复,并保持了设计的一致性。 --- 最终说明 如果您想进一步遵循 Tailwind 的标准,减少变量的使用,您可以使用标准的实用程序类 (bg-gray-50、text-gray-900、dark:bg-gray-800、dark:text-gray-100 等)。 对于那些更喜欢使用 .dark 类来实现深色模式的用户,只需将 @media (prefers-color-scheme: dark) 替换为文件中的 .dark & { ... } 选择器,并使用 JavaScript 或在 HTML 中手动控制主题即可。 */</code>
custom2.css
<code class="language-css">/* ================================================================= CSS 变量配置 集中定义项目的所有变量 ================================================================= */ :root { /* 颜色 - 浅色主题 */ --color-primary: #2563eb; /* Tailwind 的 blue-600 */ --color-primary-hover: #1d4ed8; /* Tailwind 的 blue-700 */ --color-background: #ffffff; --color-text: #1f2937; /* Tailwind 的 gray-800 */ --color-text-muted: #4b5563; /* Tailwind 的 gray-600 */ --color-border: #d1d5db; /* Tailwind 的 gray-300 */ --color-input-bg: #f9fafb; /* Tailwind 的 gray-50 */ --color-code-bg: #f3f4f6; /* Tailwind 的 gray-100 */ --color-code-text: #273e65; /* Tailwind 的 blue-800 */ /* 间距 */ --spacing-base: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; /* 圆角 */ --radius-base: 0.375rem; --radius-lg: 0.5rem; /* 最大宽度 */ --max-width-content: 48rem; /* 768px */ } /* 使用 prefers-color-scheme 配置深色主题 */ @media (prefers-color-scheme: dark) { :root { /* 颜色 - 深色主题 */ --color-primary: #0284c7; /* Tailwind 的 sky-600 */ --color-primary-hover: #6990c7; /* Tailwind 的 blue-400 */ --color-background: #111827; /* Tailwind 的 gray-900 */ --color-text: #f3f4f6; /* Tailwind 的 gray-100 */ --color-text-muted: #9ca3af; /* Tailwind 的 gray-400 */ --color-border: #374151; /* Tailwind 的 gray-700 */ --color-input-bg: #1f2937; /* Tailwind 的 gray-800 */ --color-code-bg: #1f2937; /* Tailwind 的 gray-800 */ --color-code-text: #e8ecf6; /* Tailwind 的 blue-100 */ } } /* Tailwind 导入 */ @tailwind base; @tailwind components; @tailwind utilities; // ... (其余样式代码,与原文相同) ...</code>
custom3.css
<code class="language-css">// ... (其余样式代码,与原文相同) ...</code>
app/views/layouts/application.html.erb
檔案移除 Tailwind 類別名稱<code class="language-erb"> <!-- ... --> </main></code>
應該只有一個樣式未被註解。若要測試其他樣式,請先註解掉目前正在使用的樣式,然後取消註解要測試的另一個樣式。
選擇可用的自訂樣式後,執行以下指令:
<code class="language-bash">$ rails -v Rails 8.0.0 $ time rails new classless-css-tailwind ... real 0m47.500s user 0m33.052s sys 0m4.249s</code>
如果上述指令無法使 HTML 元素生效,請先清除先前的文件,然後重新預先編譯:
<code class="language-bash">$ cd classless-css-tailwind && code .</code>
配置好帶有上述自訂設定的 Tailwind 並啟動 Rails 伺服器後,您將看到帶有樣式的 HTML。
某些樣式具有深色模式 (dark mode) 選項。若要確認,請在您的電腦的色彩個人化設定中變更主題。在 Windows 中搜尋“啟用應用的深色模式”,並在深色模式和淺色模式之間切換。更改作業系統設定後,HTML 頁面應該會自動更改,表示它支援淺色和深色模式。
[x] 依照您的喜好整理樣式; [x] 使用專案中的 CSS 檔案進行樣式設置,不使用 CDN; [x] 使用 Tailwind 複製無類別名稱 CSS 框架的功能; [-] 使用 Rails Live Reload 動態更新瀏覽器中的項目變更; [-] 如果您想花更多時間在前端,請查看您最喜歡的樣式的自訂選項;
以上是使用 CSS-Zero 作為無類別 CSS 框架的 Ruby on Rails 快速前端的詳細內容。更多資訊請關注PHP中文網其他相關文章!