时间:2023-07-24 14:06:02 | 来源:网站运营
时间:2023-07-24 14:06:02 来源:网站运营
思路分享:如何尝试创建自己的CSS框架?:在2019年,我创建了一个CSS框架并将其命名为Rotala.css。经过一些重构和修改,我终于在2020年发布了 "玩具 "框架。但它仍在原型设计中,因为我认为我的解决方案还不优雅。@mixin button-icon { margin: 0 2px;}.button { padding: 2px; @include button-icon;}
坦白地说,我从其他著名的框架(如Bootstrap和Bulma和Spectre和Miligram)中学到了很多好的技术。我从他们那里借来了一些好的设计,尤其是从 Spectre.css 那里借来的(模仿别人来重新发明轮子没有什么可耻的)。<button class="mx-4 p-2 text-gray-600 bg-gray-300">button</button>
Tailwind.css中的所有内容都进行了细分,因此将这些类写入元素就像将构建块放在一起一样。/* Base */@import "tailwindcss/base";@import "./base.pcss";/* Components */@import "tailwindcss/components";@import "./components.pcss";
使用 postcss-cli
使编译变得简单 $ postcss docs/main.pcss -o docs/assets/css/rotala.css...
从build命令可以看到,我完全放弃了SASS并迁移到Postcss。SASS并没有什么不好,但我只是希望我的框架只使用一种技术,以避免某些复杂性。rotala/ docs/ style/ CHANGELOG.md README.md package.json postcss.config.js
docs/
文件夹用于保存可以帮助演示输出的静态文件。这也是Github页面的替代设置,可以轻松地帮助发布静态页面而无需额外的路由参数。docs/ assets/ base/ components/ index.html main.pcss
style/
包含所有源样式。最初,我制作了大约20个组件,因为我认为它们对于构建现代网站的基本部分非常必要。这些样式很大程度上基于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的优点:.container { @apply bg-white rounded-lg p-6; @screen md { @apply flex; }}
我相信blow这个用法看起来好多了,不是吗?.container
,我也可以使用“模板样式”直接装饰它。<div class="container font-bold mx-2"> ...</div>
我清楚和明白,我不是第一个这样想的人,但至少这可以成为我的框架在其他框架中脱颖而出的一个很好的特点。.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;}
这样一来,所有的组件只要添加新的样式覆盖,就可以修改成想要的形状。它遵循了我们应该如何处理CSS样式的原始实践。<button class="button text-gray-700 bg-gray-300 hover:bg-gray-500 transition-colors duration-150"> Background Gray</button>
简单来说:Class + Utilities = 你的时尚组件。.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
翻译:公众号《前端全栈开发者》
关键词:创建,尝试,思路