時(shí)間:2023-07-24 14:06:02 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-07-24 14:06:02 來源:網(wǎng)站運(yùn)營(yíng)
思路分享:如何嘗試創(chuàng)建自己的CSS框架?:在2019年,我創(chuàng)建了一個(gè)CSS框架并將其命名為Rotala.css。經(jīng)過一些重構(gòu)和修改,我終于在2020年發(fā)布了 "玩具 "框架。但它仍在原型設(shè)計(jì)中,因?yàn)槲艺J(rèn)為我的解決方案還不優(yōu)雅。@mixin button-icon { margin: 0 2px;}.button { padding: 2px; @include button-icon;}
坦白地說,我從其他著名的框架(如Bootstrap和Bulma和Spectre和Miligram)中學(xué)到了很多好的技術(shù)。我從他們那里借來了一些好的設(shè)計(jì),尤其是從 Spectre.css 那里借來的(模仿別人來重新發(fā)明輪子沒有什么可恥的)。<button class="mx-4 p-2 text-gray-600 bg-gray-300">button</button>
Tailwind.css中的所有內(nèi)容都進(jìn)行了細(xì)分,因此將這些類寫入元素就像將構(gòu)建塊放在一起一樣。/* Base */@import "tailwindcss/base";@import "./base.pcss";/* Components */@import "tailwindcss/components";@import "./components.pcss";
使用 postcss-cli
使編譯變得簡(jiǎn)單 $ postcss docs/main.pcss -o docs/assets/css/rotala.css...
從build命令可以看到,我完全放棄了SASS并遷移到Postcss。SASS并沒有什么不好,但我只是希望我的框架只使用一種技術(shù),以避免某些復(fù)雜性。rotala/ docs/ style/ CHANGELOG.md README.md package.json postcss.config.js
docs/
文件夾用于保存可以幫助演示輸出的靜態(tài)文件。這也是Github頁(yè)面的替代設(shè)置,可以輕松地幫助發(fā)布靜態(tài)頁(yè)面而無需額外的路由參數(shù)。docs/ assets/ base/ components/ index.html main.pcss
style/
包含所有源樣式。最初,我制作了大約20個(gè)組件,因?yàn)槲艺J(rèn)為它們對(duì)于構(gòu)建現(xiàn)代網(wǎng)站的基本部分非常必要。這些樣式很大程度上基于Spectre.css和Bulma(我是這些框架的粉絲)。style/ base/ components/ Accordion/ Typography/ Badge/ Breadcrumb/ Tooltip/ Button/ Checkbox/ Divider/ Drawer/ Table Group/ Form Group/ Input/ Tab/ Avatar/ Link/ Menu/ Modal/ Notification/ Pagination/ Popover/ Radio/ Select/ base.pcss components.pcss main.pcss prefix.pcss
<div class="md:flex bg-white rounded-lg p-6"> <img class="h-16 w-16 md:h-24 md:w-24 rounded-full mx-auto md:mx-0 md:mr-6" src="avatar.jpg" /> <div class="text-center md:text-left"> <h2 class="text-lg">Erin Lindford</h2> <div class="text-purple-500">Customer Support</div> <div class="text-gray-600">erinlindford@example.com</div> <div class="text-gray-600">(555) 765-4321</div> </div></div>
Tailwind.css的優(yōu)點(diǎn):.container { @apply bg-white rounded-lg p-6; @screen md { @apply flex; }}
我相信blow這個(gè)用法看起來好多了,不是嗎?.container
,我也可以使用“模板樣式”直接裝飾它。<div class="container font-bold mx-2"> ...</div>
我清楚和明白,我不是第一個(gè)這樣想的人,但至少這可以成為我的框架在其他框架中脫穎而出的一個(gè)很好的特點(diǎn)。.button { @apply appearance-none; @apply select-none; @apply align-middle; @apply font-medium; @apply text-center; @apply text-base; @apply no-underline; @apply leading-normal; @apply whitespace-no-wrap; @apply inline-block; @apply cursor-pointer; @apply rounded-sm; @apply py-1 px-3;}
這樣一來,所有的組件只要添加新的樣式覆蓋,就可以修改成想要的形狀。它遵循了我們應(yīng)該如何處理CSS樣式的原始實(shí)踐。<button class="button text-gray-700 bg-gray-300 hover:bg-gray-500 transition-colors duration-150"> Background Gray</button>
簡(jiǎn)單來說:Class + Utilities = 你的時(shí)尚組件。.button { @apply text-gray-700; @apply bg-gray-300; @apply transition-colors @apply duration-150; &:hover { @apply bg-gray-500; }}
原文:https://pitayan.com/posts/css-framework-attempt
作者:Yanze Dai
翻譯:公眾號(hào)《前端全棧開發(fā)者》
關(guān)鍵詞:創(chuàng)建,嘗試,思路
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。