首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Gatsby和Styled-Components中使用Google Web字体

,可以通过以下步骤实现:

  1. 首先,你需要在Google Fonts网站(https://fonts.google.com/)上选择你想要使用的字体。浏览并选择适合你项目的字体,然后点击右上角的"+ Select this style"按钮。
  2. 在弹出的选项卡中,你可以自定义字体的样式,例如字重、斜体等。完成后,点击底部的"Embed"选项卡。
  3. 在"Embed"选项卡中,你将看到一个链接和一段嵌入代码。复制这段代码。
  4. 在你的Gatsby项目中,找到你想要使用Google Web字体的组件文件。在文件的顶部,导入styled-componentscreateGlobalStyle
代码语言:txt
复制
import styled, { createGlobalStyle } from 'styled-components';
  1. 在组件文件中,使用createGlobalStyle创建一个全局样式组件,并在其中添加你想要使用的Google Web字体。例如:
代码语言:txt
复制
const GlobalStyle = createGlobalStyle`
  @import url('https://fonts.googleapis.com/css2?family=Font+Name&display=swap');

  body {
    font-family: 'Font Name', sans-serif;
  }
`;

确保将Font+Name替换为你选择的字体的名称,同时将body选择器替换为你想要应用字体的选择器。

  1. 在组件中使用styled-components创建你的样式组件,并在其中使用你选择的字体。例如:
代码语言:txt
复制
const StyledComponent = styled.div`
  font-family: 'Font Name', sans-serif;
  /* 其他样式 */
`;

同样,将Font+Name替换为你选择的字体的名称。

  1. 最后,在你的组件中,将全局样式组件和样式组件添加到组件的渲染中:
代码语言:txt
复制
const YourComponent = () => (
  <>
    <GlobalStyle />
    <StyledComponent>
      {/* 组件内容 */}
    </StyledComponent>
  </>
);

现在,你的Gatsby项目中的组件将使用Google Web字体。

推荐的腾讯云相关产品:腾讯云字体库(https://cloud.tencent.com/product/ttc)是一个提供高质量字体资源的云服务,可以满足在云计算项目中使用Google Web字体的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Reactstyled-components基础上使用iconfont字体图标

styled-components官网 巧妇难为无米之炊,先准备米: 从iconfont官网选取图标 添加购物车 购物车添加项目 项目中生成代码 下载代码包到本地 这套流程应该娴熟到不用看上边的文案...重点来了, 怎么style-components中使用iconfont: 提取下载的字体文件到项目的src>assets>fonts文件夹(当然可以根据你的项目决定其他的路径) ?...提取iconfont.css代码到全局style.js文件的GlobalStyled的createGlobalStyle``,用于全局通用。...1 // import { injectGlobal } from 'styled-components'; 2 // injectGlobal` 3 // body { 4 // margin...36 ` 踩坑: 代码,第33行这种地方,是需要修改原来的iconfont.css代码的。

3.6K30

使用Gradle嵌入式Web容器Jetty运行Web应用

使用Gradle第一次构建Web应用的代码基础上我们进行修改 Jetty 插件 Maven 等构建的项目中,我们要使用 Jetty 做嵌入式 Web 容器运行 Web 应用,通常需要添加 Jetty...Gradle 构建的项目中,我们可以使用 Jetty 插件从而省略相关依赖的引入以及上面代码的编写 build.gradle: apply plugin:'jetty' 通过 Gradle 的 API...添加了 Jetty 插件后我们运行项目【为了避免不必要的麻烦,我们将项目的目录改为了 project 避免使用中文】: www.coderknock.com$ gradle jettyRun Starting...at build_6ecrowvh1t5jyzhh29knepzxf.run(D:\Windows\Desktop\LearnGradle\使用Gradle嵌入式Web容器Jetty运行Web应 用...Gradle 4.0 中将会被删除,推荐使用 Gretty 插件,我们再次修改项目 build.gradle 将 apply plugin:'jetty' 更改为 apply from: 'https:

1.7K10

如何使用ParamSpiderWeb文档搜索敏感参数

ParamSpider ParamSpider是一款功能强大的Web参数挖掘工具,广大研究人员可以利用ParamSpider来从Web文档的最深处挖掘出目标参数。...核心功能 针对给定的域名,从Web文档搜索相关参数; 针对给定的子域名,从Web文档搜索相关参数; 支持通过指定的扩展名扫描引入的外部URL地址; 以用户友好且清晰的方式存储扫描的输出结果; 无需与目标主机进行交互的情况下...,从Web文档挖掘参数; 工具安装&下载 注意:ParamSpider的正常使用需要在主机安装配置Python 3.7+环境。...注意:使用该工具之前,请确保本地主机配置好了Go环境。...安装配置命令如下: $ go get -u github.com/tomnomnom/gf $ cp -r $GOPATH/src/github.com/tomnomnom/gf/examples

3.7K40

web 业务开发究竟该如何使用锁?

1 为什么锁可以解决线程安全问题 因为只有一个线程可拿到锁,所以加锁后的代码的资源操作线程安全。 但该案例的 add 始终只有一个线程操作,显然只为 add 加锁无意义。...所以因为两个线程是交错执行addcompare的业务逻辑,而且这些业务逻辑不是原子性的:a++b++操作可以穿插在compare方法的比较代码; a 加载a 加载b 比较 应该为addcompare...解决方案 定义一个Object类型的静态字段,操作counter之前对该字段加锁。 ? 评论里肯定又有人会说:就这?直接把wrong定义为静态不就行?锁不就是类级别的了?...使用JDK自带的VisualVM工具来跟踪一下,重新执行方法后不久就可以看到,线程Tab中提示了死锁问题,根据提示点击右侧线程Dump按钮进行线程抓取操作: 查看抓取出的线程栈,页面中部可以看到如下日志...为什么会死锁 购物车添加商品的逻辑,随机添加三种商品,假设一个购物车的商品是item1item2,另一个购物车的商品是item2item1,一个线程先获取到了item1的锁,同时另一个线程获取到了

93510

进击的JAMStack

因此用最通俗易懂的话来描述JAMStack就是:使用JavaScript,APIsMarkdown三种技术来构建Web应用。所以JAMStack是一种问题解决方案,而不是一个具体的实现。...接着我们再具体看一下JavaScript,APIsMarkdown这三种技术JAMStack的世界是起到什么作用的。...JavaScript JAMStack的概念,JavaScript指的是客户端(client)实现动态网页效果的JavaScript,它既可以是ReactVue这种Web框架,也可以是原生的JavaScript...更好的开发者体验 拿我们前面提到的Gatsby来举例,它就允许我们使用一些现代的前端技术来进行开发,例如React,Styled-componentsGraphQL等,这些都是我们前端开发者十分熟悉的技术了...除此之外,由于Gatsby使用了React,所以它间接上接入了React的生态系统,这样开发者开发Gatsby应用时就可以使用React生态的各种最佳实践库实现了,这无疑可以大大提高我们的开发效率。

2.8K30

php JWTweb使用方法教程

如果当前时间nbf里的时间之前,则Token不被接受;一般都会留一些余地,比如几分钟。 "nbf" =/ /> 1357000000, # 非必须。JWT ID。...经过json_encodebase64_encode就可得到payload signature组成部分 将 header payload使用header中指定的加密算法加密,当然加密过程还需要自定秘钥...JWT使用流程 官方使用流程说明: 翻译一下: 初次登录:用户初次登录,输入用户名密码 密码验证:服务器从数据库取出用户名密码进行验证 生成JWT:服务器端验证通过,根据从数据库返回的信息,以及预设规则...,生成JWT 返还JWT:服务器的HTTP RESPONSE中将JWT返还 带JWT的请求:以后客户端发起请求,HTTP REQUEST HEADER的Authorizatio字段都要有值,为...urlsafeB64Encode(string $input) { return str_replace('=', '', strtr(base64_encode($input), '+/', '-_')); } JWT 使用的注意事项

1.8K30

依赖管理(一):图片、字符串文件字体Flutter怎么用?

随着各类配置各异的终端设备越来越多,资源管理也越来越重要,今天我们就先来看看Flutter的图片、配置字体的管理机制。...iOS平台中,为了区别不同分辨率的手机设备,图片其他原始资源是区别对待的:iOS使用Images.xcassets 来管理图片,而其他资源直接拖进工程项目即可。...对于图片类本地资源的访问,我们可以使用Image.asset构造方法完成图片资源的加载及显示,文本、图片按钮Flutter怎么用Flutter的图片组件这两篇文章,我已经做了详细介绍,这里不再赘述...手机操作系统一般只有默认的几种字体大多数情况下可以满足我们的正常需求。但是一些特殊情况下,我们可能需要使用自定义字体来提升视觉体验。...Flutter使用自定义字体同样需要在 pubspec.yaml 文件中提前声明。需要注意的是,字体实际上是字符图形的映射。

2.9K30

PHP,cookiesession的使用

多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。...用途:PHP的Cookie具有非常广泛的使用,经常用来存储用户的登录信息,购物车等,且使用会话Session时通常使用Cookie来存储会话id来识别用户,Cookie具备有效期,当有效期结束之后,...一般情况下,大多是使用所有路径的,只有极少数有特殊需求的时候,会设置路径,这种情况下只指定的路径才会传递cookie值,可以节省数据的传输,增强安全性以及提高性能。...使用session PHP中使用session非常简单,先执行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写。...用户登录成功以后,通常可以将用户的信息存储session,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储。

4K70

GitGitHub如何使用分支

之前关于 git 版本控制软件的两篇教程,我们学习了 使用 git 的基本命令,以及 如何使用 GitHub 来建立仓库并将我们的项目代码推送到网站。...像 GitHub、GitLab BitBucket 这样的平台通过云端托管 git 仓库,使使用 git(尤其是团队项目中)更加用户友好,开发人员可以云端存储、共享与他人协作编写代码。...(本教程,我们使用 GitHub,但其他基于 git 的版本控制平台的工作方式相同)。 什么是 Git 分支?...我们的场景,我们将使用 hello_octo 分支来进行测试我们的更改,然后将这些更改推送到 GitHub 上的主分支。...到目前为止,我们一直使用一个极其简化的示例项目,因为此时最重要的是理解吸收 git 工作流程。现实世界,合并比这要复杂得多 - 例如,如果您的合并出现冲突,会发生什么?

11310

WordPress 如何使用 Date Time

使用 Date Time 是程序员一个非常日常的工作,比如定时发布,定时抓取信息等。...PHP 提供很多 date/time 函数,但是 WordPress 有自己的一套,下面讲解下 WordPress 中使用 Date Time 的经验坑。...时区 - Timezone 使用 date/time 第一个的要注意的时时区,很多错误都是因为这个引起的,比如定时发布的文章错误的时间发布了(比如你想是北京时间明天早上8点发布的,但是发布格林尼治时间早上...Date time 格式 WordPress 让我们 设置 > 常规 修改默认的时间格式,所以我们尽量代码使用这个格式,而不要使用 date() 来生成,除非你自己要生成特殊的格式。...PHP 可以使用 Date Time 做很多事情,但是一定要用 WordPress 方式使用它们。

1.5K10

前端领域2017年有哪些变化,2018年又有怎样的期待?

我们一直寻找弥补 web 其他客户端之间体验差距上的解决方案。...Google 一直主导通过将 web 应用转换为 Progressive Web Apps(PWA) 来增强它的能力,而这一方法 2017 年迅速获得采用。...2017 年见证了 styled-components(由 Max Stoiber、Glen Maddern Phil Plückthun创建) 流行程度上逐渐占据主导地位。...像 Gatsby这样的框架使您能够使用 React 其他现代工具构建静态网站。不是每个网站都需要或应该成为一个复杂的现代 web 应用。...Flow TypeScript 采取更强大的举措,使 JavaScript 更具结构。 虚拟现实使用类似 A-Frame、React VR Google VR这样的库正在向前迈进。

1.2K100

SSE(Server-sent events)技术web端消息推送实时聊天使用

是基于http协议,WebSocket的全双工通道(web端和服务端相互通信)相比,SSE只是单通道(服务端主动推送数据到web端),但正是由于此特性,不需要客户端频繁发送消息给服务端,客户端却需要实时或频繁显示服务端数据的业务场景可以使用...web端消息推送功能,由于传统的http协议需要客户端主动发送请求,服务端才会响应;基本的ajax轮寻技术便是如此,但是此方法需要前端不停的发送ajax请求给后端服务,无论后端是否更新都要执行相应的查询...SSE,浏览器发送一个请求给服务端,通过响应头中的Content-Type:text/event-stream;等 向客户端证明这是一个长连接,发送的是流数据,这时客户端不会关闭连接,一直等待服务端发送数据...官方给出的flask_sse 文档,使用 gunicorn(wsgi协议的一个容器,uWSGI一样的功能) + gevent 作为异步功能的服务器。...https://github.com/Rgcsh/sse_chait 坑点: 1.uWSGI配置时,sse_chait.ini配置文件,socket参数是给搭建nginx+uWSGI服务时用的,http

5K90

WEB应用MyBatis(使用MVC架构模式)

学习目标: 掌握mybatisweb应用怎么用 mybatis三大对象的作用域生命周期 ThreadLocal原理及使用 巩固MVC架构模式 为学习MyBatis的接口代理机制做准备 实现功能...实现步骤 第一步:环境搭建 使用Maven创建web项目 pom.xml文件添加依赖:mybatis,mysql驱动,junit,logback,servlet 依赖 ,其中servlet依赖的引入...web.xml的版本 使用MVC进行演示 ,需要创建相关的包 ​ ​ 相关依赖的引入: <!...使用 SqlSessionFactory 的最佳实践是应用运行期间不要重复创建多次,多次重建 SqlSessionFactory 被视为一种代码“坏习惯”。...如果你现在正在使用一种 Web 框架,考虑将 SqlSession 放在一个 HTTP 请求相似的作用域中。

9610

CSS样式汉字字母分别使用不同字体的方法

说来也巧最近不知道发点什么文章,在后台测试代码的时候看见网友文章“修改网页自定义字体的CSS代码+图文教程”反馈,怎么css里汉字字母使用不同的字体,应该怎么判断实现,这个问题问得好,文章有内容了...如:Arial,'Times New Roman'这两种字体不认识中文,只认识英文,所以这两种字体只能渲染英文数字一些特殊符号,而页面的中文就会自动调用第三种字体Microsoft YaHei(PS...所以定义字体的时候把英文的字体写在前面把中文的写在后面。这样,系统就会自动按顺序依次给字用字体,如果当前字体不支持文本,自动换用列表的下一个字体。...虽然说大多数情况下直接使用显示名称也有效,但有些用户却工作一些很极端的情况下,这会导致你的字体声明无效。...即在这些浏览器(IE7、IE8)下不支持font-family属性为英文中文字体分别使用不同的字体,所以我最终还是选择不区别,毕竟折腾来回意义并不是很大,但是代码却多了很多。

4.7K10

Gatsby 创建一个博客

这意味着您的用户可以获得静态站点的所有好处,比如不使用JavaScript、搜索引擎友好性、非常快的加载速度等等,也并没有失去现代web所期望的活力交互性。...在这篇文章,我们将深入探讨 Gatsby 一些新特性,并创建一个静态博客。让我们开始吧!...你不知道,我们 Gatsby 做到这一点有多容易,使用我们博客模板中使用的类似策略,例如一个 React 组件一个 GraphQL 查询。...现在,你在跟随本教程的学习过程获得的知识,将会使你做出一些不可思议的事情。您不仅可以使用CSS(styled-components!)使其变得漂亮,还可以通过实现以下功能来变得更强大!...添加一个 tag 列表 tag 查询页 提示: gatsby-node.js 文件的 createPages API 在这里很有用,还有之前的 frontmatter 特定的博客文章之间添加导航(

2.5K30

使用 MediaStream Recording API Web Audio API 浏览器处理音频(未完待续)

使用 MediaStream Recording API Web Audio API 浏览器处理音频 1....于是乎,我就顺便调研了下如何在浏览器处理音频,发现 HTML5 中有专门的API用来处理音频。 2. 核心概念 2.1 MediaStream 一个MediaStream是一个媒体内容的流。...一个流可能包含几个轨道:比如若干视频轨道若干音频轨道。...2.4 AudioContext 使用Web Audio API相关接口前,你必需创建一个AudioContext。一切操作都在这个环境里进行。...一个AudioContext是一张图(Graph),里面有若干节点(Node),被有向线段连接,就像这样: 为了方便理解,我们可以把它想象成演唱会上的调音师: 它会把歌手现场乐队的声音经过混合和加工

45220

Dart 更好地使用 mixin

但是 Dart 并不要求所有代码都定义一个类。我们可以一个类的外面定义顶级变量、常量、函数 —— 就像面向过程语言那样。正式因为这样,Dart 的编码会有些特殊的建议。...但是, Dart ,如果仅仅是一个函数,定义类反而使得代码不好维护。这个时候建议直接使用 typedef 来定义函数别名。...maxLength = 256; public static int minLength = 5; } 复制代码 这样做的好处是假设静态常量名多个类定义的话,可以通过命名空间避免冲突。...这个很多语言都有介绍过,继承应该仅在子类符合“is a”父类的关系的时候才使用。...建议4:不要使用 implements 实现非接口类 接口类的定义的好处是可以多种实现方式中切换而无需更改代码,依赖注入型的框架或代码结构中会经常使用面向接口编程的方式。

2.4K00
领券