关于前端:twitter-换新-logo-了用-CSS-渐变来画一个吧

4次阅读

共计 1744 个字符,预计需要花费 5 分钟才能阅读完成。

大家可能晓得,不久前 twitter 换了一个新 logo,从蓝色小鸟变成了一个“x”,如下

不聊其余的,看看如何用 CSS 突变来绘制这样一个图形

一、x 的绘制

整个 logo 是一个镂空的“x”形态,先不思考镂空局部,如何绘制实心的“x”呢

突变有 3 种,线性突变、径向突变和锥形突变。很显然,x 能够看成是两端歪斜的线段,用线性突变就足够了。

假如 HTML 构造是这样,一个 x 元素

<x></x>

用字号来管制尺寸大小

x{
  display: inline-block;
  font-size: 200px;
  width: 1em;
  height: 1em;
}

而后通过线性突变绘制一条斜线,其实就是 通明→纯色→通明 的突变,留神这里的角度关系,示意如下

用代码实现就是

x{
  /**/
  background: linear-gradient(-52deg, #0000 50%, currentColor 0 55%,#0000 0);
}

能够失去一条歪斜的线段

用同样的形式绘制另一个方向上的

x{
  /**/
  background: linear-gradient(-52deg, #0000 50%, currentColor 0 55%,#0000 0),
    linear-gradient(52deg, #0000 44%, currentColor 0 56%,#0000;}

这样就失去一个“x”

二、镂空的实现

提到镂空,你应该想到 CSS mask。

遮罩的原理很简略,在遮罩图像下,只显示不通明的局部,通明的局部会被裁剪,半透明以此类推,示意如下

对于遮罩,这个技巧十分实用,之前在多篇文章中都有用到,有趣味的能够回顾一下

  • 一个有意思的 CSS 图片 hover 成果
  • CSS 如何实现羽化成果?
  • 别用图片了,CSS 遮罩合成实现带圆角的环形 loading 动画
  • CSS mask 实现鼠标追随镂空成果
  • CSS 实现 Chrome 标签栏的技巧
  • CSS 实现优惠券的技巧

在这里,因为只须要挖空一小部分,所以这部分是通明的,而其余局部都是不通明的,示意如下

那么问题来了,如何绘制这样一个遮罩图呢?

这种状况下,应该反过来思考,外面的斜线和后面的线性突变基本一致,只是这部分当初是镂空的。因而,这里须要用到遮罩合成:mask-composite,和设计软件中的图形运算十分类似。

所以,下面的遮罩图形能够拆分为以下两个局部

用代码实现就是

x{
  /**/
  -webkit-mask: linear-gradient(red 0 0),
        linear-gradient(52deg, #0000 48%, red 0 52%,#0000 0) 0/100% 90% no-repeat;
  -webkit-mask-composite: xor;
}

这样就实现了 twitter 的新 logo

因为背景色是追随文字色彩的,所以更换 logo 色彩也十分不便

x{color: royalblue}

成果如下

残缺代码如下(不到 10 行)

x{
  display: inline-block;
  font-size: 200px;
  width: 1em;
  height: 1em;
  background: 
    linear-gradient(52deg, #0000 44%, currentColor 0 56%,#0000 0),
    linear-gradient(-52deg, #0000 50%, currentColor 0 55%,#0000 0);
  -webkit-mask: linear-gradient(red 0 0),
    linear-gradient(52deg, #0000 48%, red 0 52%,#0000 0) 0/100% 90% no-repeat;
  -webkit-mask-composite: xor;
}

你也能够拜访以下在线链接:

  • CSS twitter (codepen.io)’)

三、总结一下

非常简单、十分轻松的一篇分享,置信能够给大家带来一些启发,上面总结一下绘制要点:

  1. 简单的图像先拆解,先实现简略的局部
  2. x 能够看成是两端歪斜的线段,用线性突变绘制即可
  3. 看到镂空,应该想到 CSS 中的遮罩
  4. 有些反向遮罩不好实现,能够思考用遮罩合成,和设计中的图形运算十分类似
  5. CSS 实现的益处是能够随便更换色彩

当然理论的 logo 不可能用这种形式去绘制啦~ 这里只是提供一种 CSS 思路,锤炼一下 CSS 绘制的能力。最初,如果感觉还不错,对你有帮忙的话,欢送点赞、珍藏、转发❤❤❤

正文完
 0