css波浪线-CSS小方法利用font-variation让文字起飞

明天访问codepen的时候,发现文字动画效果不错。 如此丝滑轻盈的效果必须要研究一下。 可以看到字体粗细切换过渡的效果非常均匀,不像我们平时使用字体时设置font-weight的效果。 日常设置字体粗细时,并不是每个值都会生效,只有少数几个值范围可用。 以下代码将 6 p 标签的字体粗细设置为从 100 到 600:

@for $i from 1 through 6 {
  p:nth-child(#{$i}) {
    font-weight100 + 100 * ($i - 1);
  }
}

可以看出,每个阶段词权重都没有变化。 其实,这与不同的字体以及是中文还是英文都有一定的关系,设置字重的疗效并不理想。

这里我们将介绍一下明天文章中提到的可变字体。 基于可变字体(font-variation),就不会出现这样的混乱,而且事实上还会产生一定的恶果。

哪些是可变字体

可变字体(VariableFonts),又称多轴字体、自由字体或超级字体,是一种新兴的字体技术,是一种可以多自由度动态调整的字体格式。 与传统字体不同,“可变字体可以在单个字体文件中包含多个粗细、宽度、倾斜和其他轴变体,而不需要使用多个不同的字体文件。”

对可变字体的简单理解就是css波浪线,通过使用可变字体,可以将字重、字宽、斜体等所有组合加载到一个文件中。 相应的结果是该文件可能比常规的单一字体文件大。

可变字体支持使用 font-variation-settings 属性来控制字体的各个轴。 通过调整这些轴的值css波浪线,可以达到自定义字体样式的效果。

波浪线怎么打在上方_波浪线符号是什么意思_css波浪线

下面将可变字体的粗细设置为从 100 到 600,

font-variation-settings: "wght" 100, "ital" 0;

可以看到,这次字体的粗细是均匀变化的,就像设置font-weight: 100到font-weight: 600并逐渐变化一样。

可变字体的浏览器兼容性表明基本浏览器已经支持它们。

如何使用

这是由字体设计者决定的。 字体设计提供了各种可以更改的轴,例如粗细、长度和任何合理的范围。 下面提供了几种常用的保留轴:

查找可用的可变字体

波浪线符号是什么意思_css波浪线_波浪线怎么打在上方

如果要使用它,首先要找到相关的字体资源。 在v-fonts.com这个网站上你可以找到很多可变字体,其中很多都是github上开源的,可以直接下载。

用于CSS

通过@font-face引入到页面中:

@font-face {
    font-family'VennVF';
    srcurl('VennVF_W.woff2'format('woff2-variations'),
        url('VennVF_W.woff2'format('woff2');
}

每个可变字体都有不同的轴和不同的范围,如果你不知道可变字体可以做出什么改变,你可以使用这个(wakamaifondue.com)在线工具,它可以帮助你生成现成的css以供使用。

目前,通过font-variation-settings属性,我们可以方便地控制自定义字体的不同轴,例如设置如下代码:

p {
 font-family"VennVF";
 font-variation-settings"wght" 550"wdth" 125;
}

此代码将字体粗细更改为 550,宽度更改为 125。将来可能可以使用以下属性来实现相同的效果:

p {
 font-family: "VennVF";
 font-weight: 550;
 font-stretch: 125%;
}

波浪线符号是什么意思_波浪线怎么打在上方_css波浪线

一个反例如下所示:

h1 {
  font-family: 'Inter Variable', sans-serif;
  font-variation-settings: 
    "wght" 700, 
    "ital" 1, 
    "opsz" 48;
}

在此示例中,我们将可变字体“Inter”设置为粗细为 700、斜度为 1、字体大小为 48 像素的标题字体。 可见,通过font-variation-settings属性,我们可以方便地控制自定义字体的不同轴,以实现更加饱满灵活的排版效果。

国家地图实现代码

国图的字体给人一种呼吸和轻盈的感觉。 核心是在可变字体的基础上改变字体的粗细,针对不同的字符减少不同的延迟动画效果,以达到最终的效果。

@keyframes change {
  0% {
    font-variation-settings"wght" 900"ital" 1;
  }

  50% {
    font-variation-settings"wght" 100"ital" 0;
  }

  100% {
    font-variation-settings"wght" 900"ital" 1;
  }
}

  animation-duration: 3s;
  animation-iteration-countinfinite;
  animation-namechange;
  transition-timing-functionease-in-out;

  @for $line from 1 through 4 {
    @for $letter from 1 through 10 {
      &:nth-child(#{$line}) span:nth-child(#{$letter}) {
        animation-delay: #{$letter * 0.1s + $line * 0.2s};
      }
    }
  }

代码不多,但是效果很好。 基于可变字体设计,我们可以实现更加智能、美观、易读的排版效果,使文字内容更加生动、丰富。

在线功效预览:

用例

以下是所审理案件的部分疗效,供大家参考。

国外常用的英文字体思源宋体也支持可变字体。

这个谷歌动画与本文的头像效果类似,为不同的角色添加了不同的延迟和粗体字体动画。

该疗效通过改变不同词组的可变字体的粗细和宽度,表现出不同的疗效。

下面的疗效图均来自v-fonts.com。 类似的疗效还有很多。 总共有300多种可变字体。 如果你有兴趣,你可以找到他们。

通过改变动画值,小图标可以向上移动。 它会带来很多新想法吗?

这个字体很有特色。 小写字母在顶部有一条长线,大写字母在底部有一条线。 通过调整跟踪轴的值可以改变水平线的粗细。

这个字体是一条波浪线。 通过调整Width轴,可以改变波浪的大小和幅度,基于这个可变字体可以做出水波纹的效果。

终于

关于可变字体的详细介绍,可以阅读这篇文章《variablefonts-更小更灵活的字体》。 可变字体设计使文字内容更加生动、丰富。 有兴趣的同学可以尝试一下~

如果您看完本文后觉得有用,记得点赞支持哦。 说不定哪天你也能用到呢~