去年很火的 Tailwind CSS 是何方神圣,到底是 Atomic CSS 余孽的卷土重来还是真的有点东西。Tailwind CSS 如何帮助我们建立界面样式到设计语言的连接,Utility-first 的 CSS 工作流是怎样的,以及,如何基于 Tailwind CSS 为自己的团队定制一套舒服的 CSS 框架。

https://mp.weixin.qq.com/s/ziTWcfPwrz1fyzpv4j3xVg

XX开发 // tailwind.config.js
{
theme: {
extend: {
colors: {
blue: {
400: ‘#2680EB’
}
}
}
}
}

// css
@layer components {
.cta-background-color {
@apply bg-blue-400;
}
.button-cta-background-color {
@extend .cta-background-color;
}
}

// html
通过 tailwind.config.js 把 Design Token 与值做关注点分离

通过 tailwind 的 layer directive 把 Design Token 与 Alias token 做连接

创建出 Component-specific Token,通过类名暴露给 HTML 组件使用

有了 BEM,写出来的 HTML 会不那么欠揍了

欠揍写法

  1. <ul class="application-list">
  2. <li>
  3. <a href="/yuyan/yuyanAssets">
  4. <img src="https://gw.alipayobjects.com/zos/basement_prod/9a7a9c64-01ee-45ca-a615-6063a24f70a9.svg" />
  5. <div>
  6. <h4>yuyanAssets</h4>
  7. <span>雨燕前端应用</span>
  8. </div>
  9. </a>
  10. </li>
  11. </ul>
  1. <ul class="application-list">
  2. <li class="application-list__item">
  3. <a class="application-list__link" href="/yuyan/yuyanAssets">
  4. <img class="application-list__img" src="https://gw.alipayobjects.com/zos/basement_prod/9a7a9c64-01ee-45ca-a615-6063a24f70a9.svg" />
  5. <div class="application-list__content">
  6. <h4 class="application-list__title">yuyanAssets</h4>
  7. <span class="application-list__description">雨燕前端应用</span>
  8. </div>
  9. </a>
  10. </li>
  11. </ul>
  1. .application-list {
  2. list-style: none;
  3. &__item {
  4. background: #fff;
  5. }
  6. &__link {
  7. display: block;
  8. padding: 18px 22px;
  9. }
  10. &__img {
  11. display: block;
  12. width: 38px;
  13. height: 38px;
  14. float: left;
  15. }
  16. &__content {
  17. display: inline-block;
  18. }
  19. &__title {
  20. color: #314659;
  21. font-weight: 600;
  22. margin: 0;
  23. }
  24. &__description {
  25. color: #697b8c;
  26. font-size: 12px;
  27. }
  28. }