使用统一的CSS来构建现代UI

171 阅读4分钟

前端网络开发是一个不断变化的领域,我们使用的工具,如框架和库,使我们的开发过程更加有效和令人兴奋,也在不断地发展。

CSS框架是前端开发的一个重要方面。它们帮助我们快速、一致地创建现代用户界面(UI),并通过一组执行特定任务的CSS类来提供一个抽象的层次。

在这篇文章中,我们将介绍Uniform CSS,它是一个可配置的实用类生成器和CSS框架,完全由Synthetically awesome style sheet(Sass)开发。

什么是Uniform CSS?

据其背后的团队介绍,Uniform CSS是 "一个完全可配置的实用程序生成器和CSS框架,完全用Sass开发,所以你可以获得实用程序优先的工作流程的力量,而不会失去Sass的生产力。"

Uniform CSS使用的工作流程类似于Tailwind CSSStemCSS,开发者使用框架提供的预定义CSS类来设计令人惊叹的用户界面。Uniform CSS的独特之处在于,它完全是用Sass构建的,而且完全可以用功能性CSS进行配置。

Uniform CSS vs. Tailwind CSS

那么,Uniform CSS与其他CSS框架(如Tailwind CSS)有何不同呢?首先,它是完全可配置的,因为它允许开发者在框架内定制一切。他们可以自定义前缀和定界符,删除和扩展颜色,甚至修改语法和添加或删除属性。

这就是我的意思。

// All configs are done in the scss file 
// main.scss 
@use "uniform" as * with (
// add configurations here... 
 $config : (
   important : true,
   prefix : example,
   delimiter : "-",
   colors: (
      green-color : green,
      yellow-color : yellow
  ), 
   exclude : (
      padding,
      color,
      margin,
  ),
  include : (
      all 
      // includes all properties.
  )
 )
);

上面的代码将输出到我们的CSS文件,在那里我们可以访问类,像这样。

// main.css 
.example-bg-green-color {
   background-color : green !important; 
}

.example-bg-yellow-color {
   background-color : yellow !important; 
}

现在我们可以在我们的HTML代码中使用这些实用工具。

因为Uniform CSS是建立在Sass之上的,所以它可以编译成普通的CSS。但它也提供了通常在Sass中工作的优势,如供应商对CSS属性、混合器、函数等的前缀。

而且,如果这些好处还不够,当你使用Uniform CSS时,你不需要等待它获得新的CSS属性--你可以直接在你的Sass配置中添加你自己的属性。

下面是一个来自Uniform的例子

// main.scss
@use "uniform" as * with (
  $config: (
    utilities: (
      leading-trim: (
        responsive: true,
        shorthand: leading,
        properties: (leading-trim),
        variants: (
          trim: both
        )
      ),
      text-edge: (
        shorthand: text,
        properties: (text-edge),
        variants: (
          cap: cap alphabetic
        )
      )
    )
  )
);

这可以编译成。

/* main.css */
.leading-trim {
       leading-trim: both;
 }
.text-cap {
       text-edge: cap alphabetic;
 }

安装Uniform CSS

Uniform的设置相当简单。有三种方法可以在我们的项目中使用Uniform CSS。让我们来看看每一种方法。

克隆GitHub的存储库

只需将GitHub仓库克隆到你的项目文件夹中。

git clone https://github.com/ThinkUniform/uniformcss

现在我们需要把Uniform添加到我们的.scss 文件中,编译它,并观察变化。下面是如何做的。

// add this to your .scss file
@use "uniform" as *;

// now we compile using one of the build scripts made available to us or just do it using a sass build process of your choice

yarn uniform

通过这种方式安装,我们可以完全配置Uniform以满足我们的需要。

通过npm安装

如果你已经安装了Node.js,那么只需使用这个命令。

npm install uniformcss
// add this to your .scss file
@use "uniform" as *;

现在我们可以使用首选的Sass构建过程进行编译和观察变化,比如Visual Studio Code中的watch Sass 扩展。通过这种方式安装Uniform,我们还可以完全配置它以满足我们的需要。

从CDN安装

要快速使用Uniform,只需将CDN链接添加到HTML文档的头部标签中。

https://cdn.jsdelivr.net/npm/uniformcss@1.0.0/dist/uniform.min.css

使用这个选项,如果你使用预编译的版本,你只能进行基本的调整,所以你将无法获得更广泛的定制选项。

要在使用CDN选项时配置Uniform,只需在:root 伪元素中定义CSS变量作为覆盖,就像这样。

:root{
  --font-sans : 'Poppins', sans-serif;
  --primary-700 : 255, 224, 249
}

现在你可以在你的HTML文档中使用这些变量。

<h1 class="font-sans color-primary-700">Hi there!</h1>

在你的项目中使用统一的CSS

现在,让我们使用Uniform实用类建立一个简单的卡片组件。

因为这是一个小项目,我们先用CDN安装Uniform。但是,如果你想要额外的配置选项,你应该通过npm来安装,因为CDN选项并没有为我们提供太多的灵活性。

来吧,把下面的CDN链接添加到你的HTML文件的头部标签。

https://cdn.jsdelivr.net/npm/uniformcss@1.0.0/dist/uniform.min.css

我们现在可以将所有的统一CSS实用类应用于我们的HTML卡片组件。

<main class="flex justify-content-center relative top-80 font-serif">
  <div class="flex flex-col justify-content-between shadow-lg w-448 radius-lg">
      <img src="https://images.unsplash.com/photo-1593990965215-075c1f918806?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80" alt="A black man with dark shades on" class="h-288 object-cover object-center radius-lg">
  
      <div class="text-center p-12">
        <h2 class="ultrabold text-2xl p-10">Nelson Michael</h2>        
        <p class="text-sm">thatsnotreallymyface@gmail.com</p>
      </div>
  
      <div class="flex justify-content-between m-auto w-320 p-20 text-center">
        <div>
          <h3 class="extrabold text-xl">25</h3>
          <p class="text-sm">Posts</p>
        </div>
    
        <div>
          <h3 class="extrabold text-xl">350</h3>
          <p class="text-sm">Following</p>
        </div>
    
        <div>
          <h3 class="extrabold text-xl">1.5k</h3>
          <p class="text-sm">Followers</p>
        </div>
      </div>
  </div>
</main>

这里有一个 API参考,显示了所有可用的类,这就是我们最终构建的样子。

参见CodePen上King nelson(@D_kingnelson)的Pen
uniform-css-example

我们能够在不碰触我们的CSS文件的情况下,通过简单地添加几个类来创建这个简单的卡片组件。

下面是另一个例子。

参见CodePen上King nelson(@D_kingnelson)
的Pen
uniform-css-example-2

上面的例子展示了用Uniform创建可重复使用的组件是多么简单。除了需要调整配置外,我们在不碰触我们的CSS文件的情况下完成了这个任务。

浏览器对Uniform CSS的支持

Uniform CSS目前支持Chrome、Firefox、Edge和Safari的稳定版本。它不支持任何版本的Internet Explorer,包括Internet Explorer 11。

总结

Uniform CSS是一个很好的前端开发工具,因为它提供了许多预定义的类,同时允许自定义,并能够随意添加和删除类。我希望你觉得这个教程对你有帮助。

The postUsing Uniform CSS to build modern UIappeared first onLogRocket Blog.