来了金秋 9 月,在这收获的季节,Tutorialzine 又为我们带来了哪些新鲜、有趣的前端资源呢?前端开发者们,一起来看看有木有你需要的前端库。
DisplayJS 是一个帮助你渲染 DOM 的简易框架。使用它,你可以更容易地将 JS 变量遍历到特定的 HTML 元素中,类似于 React 或 Vue.js 处理模版的方式。
项目地址:https://display.js.org/
这是由 Atlassian 开源的用于制作拖拽组件的 React 库。它提供了强大、易用的 API,以及丰富的定制选项和控件。它所生成的组件,也具备了平滑的 GPU 动画效果。当元素被拾取或重新排序时,其效果将会展示出来。
项目地址:
https://github.com/atlassian/react-beautiful-dnd
这是一个全新版的 Node.js Request 库,它提供了一个更轻量的 HTTP 客户端解决方案。与 Request 库不同的是,它建立在原生浏览器 Fetch API 之上,可被应用于 Node.js. 并且,R2 在压缩后仅有 16KB 大小。
项目地址:https://github.com/mikeal/r2
Primer CSS 是由 GitHub 的前端设计师研发的 CSS 框架。为了便于安装,它的 23 个包被划分为 3 个核心的元包,每个包都可以通过 NPM 进行独立版本的发布。
项目地址:
https://github.com/primer/primer-css
Puppeteer 是一个用于操纵 Headless Chrome 的封装库,它由 Chrome DevTools 官方团队进行维护。你也可以在我们的文章《使用 Node.js 自动化Google Chrome》中,了解更多我们尝试的一些功能。
项目地址:
https://github.com/GoogleChrome/puppeteer
这是一款与 React 和 Vue.js 类似的新型 JS 框架。它可以帮助你将应用程序分解为独立的组件,并可随时间的推移,以及响应用户操作的变化显示程序视图的变化。同时,Marko 可以在应用中自动更新 DOM 来反馈数据。
项目地址:
https://github.com/marko-js/marko
Redocx 是一个用于生成 Word 文档的 React 库。你可以使用 React 组件对文档进行定义,并通过命令行将其渲染为 Word 文档。同时,此库也包含了表格、图像、页眉、页脚等丰富的组件供你选择。
项目地址:
https://github.com/nitin42/redocx
这是一个用于构建模糊搜索界面的 JS 库,类似 Sublime Text 中的界面样式。该库会根据搜索查询的匹配度,计算出搜索匹配数与时长。
项目地址:
https://github.com/farzher/fuzzysort
Trowel 是一个 SASS 工具包,它提供了一种写入 SASS 变量的新方法,允许你将多个变量分组到单个对象中,让你的 SASS 代码更易编写,更易阅读。
项目地址:
https://github.com/Trowel/Trowel
Vivify 是由纯 CSS 写的动画库,该库提供了超过 50 种动画效果供你选择。你只需要将 Vivify 的类添加到相应的元素,即可使其产生动画效果,并且添加 infinite 类后,动画就可以循环播放了。
项目地址:
https://github.com/Martz90/vivify
这是一个 CSS 复选框组件合集,它由大小不一、样式各异的复选框组成。同时,所有的复选框都具备 4 种不同的尺寸,并且兼容 IE9+ 和所有现代浏览器。
项目地址:
https://github.com/hunzaboy/CSS-Checkbox-Library
Push 是一个通用的桌面通知框架。它基于强大的 Notification API ,可作为可靠的跨浏览器解决方案,如果用户的浏览器不支持最新的 API,则会沿用老版 API 实现。
项目地址:https://pushjs.org/
react-imgpro 是一个用于图像处理的 React 组件。它可以利用 filters 进行图像处理,并生成 base64 格式的图像。它简单易用,你只需要指定一个图像的 URL,选择相应的 filters,并填写输出图像的大小与格式即可。
项目地址:
https://github.com/nitin42/react-imgpro
Lozad.js 是一个高性能、可配置的纯 JS 实现的懒加载器。它基于 Intersection Observer API,没有任何依赖,支持动态懒加载添加元素。 同时,它也是轻量级库,在 Gzip 压缩后只有 535 字节大小。
项目地址:
https://github.com/ApoorvSaxena/lozad.js
这是一个结合了 React 和 D3 的数据可视化框架。它提供了 3 种类型的框架(XYFrame,ORFrame,NetworkFrame),可帮助你生成一些酷炫图表。而显示数据的方式,也可以通过调整框架中设置或者添加 CSS 样式进行定制。
项目地址:
https://github.com/emeeks/semiotic
感谢你的阅读。若你有所收获,欢迎点赞与分享。
注:
本文版权归原作者所有,仅用于学习与交流;
如需转载译文,烦请按下方注明出处信息,谢谢!
英文原文:15 Interesting JavaScript and CSS Libraries for September 2017
作者:Danny Markov
译者:IT程序狮
译文地址:
http://www.jianshu.com/p/ec9ff744eb20
2017 年 8 月:15 个有趣的 JS 和 CSS 库
2017 年 6 月:15 个有趣的 JS 和 CSS 库
2017 年 5 月:15 个有趣的 JS 和 CSS 库
2017 年 4 月:15 个有趣的 JS 和 CSS 库
热的 7 月已经过去,秋天的脚步更近了。在本月,Tutorialzine 依旧为大家带来了一些有趣、实用的前端库,看看有哪些适合你的项目呢?
这是一组自带悬停动画的精致 SVG 图标。但与大多数 Web 图标不同之处在于 - 它的动画是基于 JS 的,需要你使用 bodymovin 库将动画效果导出为 SVG 格式。
项目地址:
https://icons8.com/c/animated-icons
Rebass 是一个用于构建响应式 Web APP 的 React UI Kit。它由超过 60 种样式组件构成,可通过样式体系中的属性进行自由定制。这样可以保证样式的隔离,便可减少在应用程序中编写自定义 CSS 的需求。
项目地址:http://jxnblk.com/rebass/
Bootstrap 4 的官方 Beta 版已经正式发布了!新版本的框架也发生了许多重大的改变,包括支持了基于 Flexbox 的网格体系,新增并重写了相关组件,更快的 ES6 JavaScript 插件,改进了文档等等。
项目地址:https://getbootstrap.com/
这是一组带有悬停动画效果的 HTML 按钮,这些按钮不仅拥有不同的形状与大小,而且具备了丰富的动画效果供你选择。Hover Buttons 是由 SCSS 制作的,所以你可以轻松的删除不想要的按钮,或根据个人喜好自由的定制其样式。
项目地址:https://varin6.github.io/Hover-Buttons/
React Simple Maps 是一个用于创建 SVG 地图的组件库,它具备添加地图细节的各类组件,它们可为地图的各个区域添加文字注释、标记以及自定义颜色。
项目地址:https://www.react-simple-maps.io/
Gpu.js 是一个用于在浏览器中运行 GPGPU 的 JS 库,它将 JavaScript 编译成能够通过 WebGL API 在 GPU 上运行的着色语言,以便更快地执行复杂的计算。如果 WebGL 不可用,则这些函数仍将以常规的 JavaScript 运行。
项目地址:http://gpu.rocks/
Pell 是一款超轻量的 WYSIWYG 文本编辑器。它由仅 200 行的 ES6 代码所构成,只有 1kB 的大小,并且没有任何的依赖关系。同时,它还支持 Markdown 文本格式所需的所有操作,包括插入图像和链接。
项目地址: https://jaredreich.com/pell
Chromeless 是一个基于 Chrome 平台 Headless 模式的 Web 自动化框架。它的 API 和功能与其他流行工具(如 PhantomJS 和 NightmareJS)非常相似,主要区别是它在 Chrome 的 Headless 模式下可以运行所有的测试。同时,它还可以在本地或借助 AWS Lambda 工作。
项目地址:
https://github.com/graphcool/chromeless
Fitty 是一个 Vanilla JavaScript 库,它可以更改文本的字体大小,使其适应固定宽度的容器。它适用于所有标准的 Web 字体,并且可以“向上”或“向下”缩放其大小,以便让它们更好的占据可用空间,而无须换行。
项目地址:
https://rikschennink.github.io/fitty/
这是一个用于发送通知的 Node.js 库,旨在成为一个处理电子邮件、短信和推送通知的一体化解决方案。另外,每个服务都有多个提供商可供你选择。
项目地址:
https://notifme.github.io/notifme-sdk/
Shoelace 是一个炒鸡轻量的 CSS 入门套件,旨在为 Bootstrap 提供一个更简单的替代方案。它由 CSS reset 与一些实用的 UI 组件构成,没有过多的样式和功能。由于这个库的代码是基于 CSS 变量的,所以也易于定制。
项目地址:https://shoelace.style/
TensorFire 是一个能够在浏览器中运行神经网络的框架。由于 TensorFire 可通过 WebGL 进行 GPU 加速,所以运行较大的机器学习模型也不是事儿。虽然,该项目还处于早期阶段,但也有了一些十分有前景的演示。例如剪刀包袱锤手势检测 Demo
项目地址: https://tenso.rs/
这是利用 Bootstrap、PugJS、Sass 构建的后台信息管理模板。由于该项目是基于易于定制的理念而设计,所以,所有的样式都是由独立的 SASS 模块进行组织。同时,该模版还提供了丰富的组件与小部件,你可以在 Demo 中查看它们。
项目地址:
http://pratikborsadiya.in/blog/vali-admin/
BotUI 是用于建立聊天机器人会话界面的 JavaScript 框架。它有一个超简单的 API,你可以通过添加消息、问题,甚至形成供用户填写的输入字段来配置对话流。
如果你想了解有关交互式会话 UI 的更多信息,请参阅我们的文章《聊天机器人之开发者简介》。
项目地址:
https://github.com/botui/botui
这是一个用于生成唯一 ID 的小型 JavaScript 库。它仅使用对 URL 友好的符号来生成字符串,但它也有一个让你提供相应字母表的选项。在 GitHub 的项目页上,你可以找到关于此库的工作方式,以及使用算法的一些有趣信息。
项目地址: https://github.com/ai/nanoid
感谢你的阅读。若你有所收获,欢迎点赞与分享。
注:
本文版权归原作者所有,仅用于学习与交流;
如需转载译文,烦请按下方注明出处信息,谢谢!
英文原文:15 Interesting JavaScript and CSS Libraries for August 2017
作者:Danny Markov
译者:IT程序狮
译文地址:
http://www.jianshu.com/p/677b3d30b342
2017 年 6 月:15 个有趣的 JS 和 CSS 库
2017 年 5 月:15 个有趣的 JS 和 CSS 库
2017 年 4 月:15 个有趣的 JS 和 CSS 库
2017 年 3 月:15 个有趣的 JS 和 CSS 库
速总结 ↬ 在这篇文章中,Louis Lazaris 描述并演示了一些有趣的 HTML 属性,您可能没有听说过也可能没有听说过,并且可能会发现它们非常有用,可以在您的项目中亲自使用。
一月份,麦迪逊卡纳[问她的推特粉丝
今年你想要学习或更深入地学习哪些语言/技术?
typescript、next.js、react、graphql、solidity、node,这几个是哪个呢
- 麦迪逊卡纳 (@Madisonkanna)
2022 年 1 月 3 日
但是我的答案很简单:HTML。而且我一点也没有讽刺或嘲弄。当然,我非常清楚在哪些情况下使用哪些标签,以及如何使用我的 HTML 大部分具有语义性和可访问性。
但是我确信我已经忘记了一大堆较少使用的属性,并且可能有一大堆我甚至不知道存在的属性。这篇文章是我研究的结果,我希望你会发现其中的一些对你有用,因为你在接下来的几个月里构建 HTML 页面。
该enterkeyhint属性是一个全局属性,可应用于已contenteditable设置为的表单控件或元素true。此属性可帮助使用虚拟屏幕键盘的移动设备上的用户。
<input type="text" enterkeyhint="done">
复制
enterkeyhint接受七个可能值之一,这些值将确定用户在他的“输入”键上看到的内容:
您可以看到这些“提示”如何对用户有用。用户是否正在执行一系列操作?他们在提交信息吗?他们在保存设置吗?根据他们正在做什么,您可以自定义提示以匹配您的应用程序的需求。
您可以通过在移动设备上访问下面的信息 CodePen 演示来尝试这个。
<main>
<h2>Using the <code>enterkeyhint</code> Attribute</h2>
<p>View this demo on a mobile device. Note the text in the "enter" key on your mobile device's virtual keyboard.</p>
<input type="text" enterkeyhint="Next">
</main>
body {
font-family: Arial, sans-serif;
font-size: 20px;
padding: 0 20px;
}
main {
text-align: center;
margin: 0 auto;
max-width: 800px;
}
p {
text-align: left;
padding: 0 20px;
}
code {
color: firebrick;
}
在我的 iOS 设备上,回车键的文本会随着键的颜色而变化,具体取决于值,如下面的屏幕截图所示。这可能会有所不同,具体取决于用户的设备。
只是强调一下,这个属性不接受自定义值;该值需要是上面显示的七个之一。无法识别的值将默认为输入键的设备默认为文本。
在为本文进行研究时,这对我来说是全新的,可能是此列表中最有趣的一个。作为一些背景知识,如果您不知道,Firefox 有一个选项可让您选择查看页面时要使用的样式表。通常,此功能显示两个选项:“基本页面样式”和“无样式”,如下图所示在我的 Windows 机器上。
这使您可以快速测试禁用样式时页面的外观,还允许您使用任何备用样式表查看页面。
备用样式表功能通过两个属性启用:title属性和rel=alternate应用于<link>元素,如下面的代码所示:
<link href="main.css" rel="stylesheet" title="Default">
<link href="contrast.css" rel="alternate stylesheet" title="High Contrast">
<link href="readable.css" rel="alternate stylesheet" title="Readable">
在这种情况下,我的“默认”样式将自动应用,但仅限于我使用 Firefox 的“页面样式”选项选择它们时,备用样式表才会应用。您可以通过使用 Firefox 或其他兼容浏览器访问以下 CodePen 来尝试上述示例:
下面的屏幕截图显示了 Firefox 中的样式表选项:
如前所述,此功能在 Firefox 中有效,但我无法让它在任何时候基于 Chromium 浏览器中工作。MDN关于备用样式表的文章说它可以在其他浏览器中使用扩展启用,但我找不到可以执行此操作的活动扩展。
我敢肯定你<blockquote>经常使用这个元素。您可以在没有属性的情况下直接使用它,但您也可以选择使用该cite属性。这是一个引用描述使用citeon的 MDN 文章的示例<blockquote>:
<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote#attr-cite">
A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.
</blockquote>
由于我上面的地块引用来解释了什么是 MDN 文章cite,因此我将指向页面的 URL 设置为cite值。
您可以看到这是多么有用,因为它将引用和引用的来源包装在一个元素中。但请注意HTML 规范中的进一步解释:
用户代理可能允许用户关注此类引用链接,但它们主要用于私人用途(例如,通过服务器端脚本收集有关站点使用引用的统计信息),而不是供读者使用。
当然,相同的概念也适用于用于内联引用cite的元素上。<q>
<ol>经常使用使用该元素的有序列表。一些鲜为人知的功能允许您自定义出现在此类列表中的编号行为:
如您所见,使用纯 HTML 的有序列表比您通常习惯的要灵活得多。
该reversed属性是一个有趣的属性,因为它实际上并没有反转列表本身的内容;它只会反转每个列表项旁边的数字。
<ol reversed>
<li>List item...</li>
<li>List item...</li>
<li>List item...</li>
</ol>
下面的 CodePen 演示添加了一些 JavaScript,因此您可以交互地切换reversed属性。
请注意,列表本身保持不变,但数字会发生变化。如果您正在寻找一种反转内容的方法,请记住这一点。这是您可以使用 JavaScript、CSS 或直接在 HTML 源代码中执行的操作。
上面,我还提到了其他三个属性。让我们将它们合并到列表中,看看如何使用它们:
<ol reversed start="20" type="1">
<li>Typee: A Peep at Polynesian Life (1846)</li>
<li>Omoo: A Narrative of Adventures in the South Seas (1847)</li>
<li>Mardi: and a Voyage Thither (1849)</li>
<li>Redburn: His First Voyage (1849)</li>
<li value="100">White-Jacket; or, The World in a Man-of-War (1850)</li>
<li>Moby-Dick; or, The Whale (1851)</li>
<li>Pierre; or, The Ambiguities (1852)</li>
<li>Isle of the Cross (1853 unpublished, and now lost)</li>
</ol>
请注意,已添加的type和属性以及单个列表项上的属性。该属性接受表示编号类型的五个单字符值(、、、、 )之一。start``value``type``a``A``i``I``1
使用以下交互式演示进行尝试:
使用单选按钮选择该type属性的五个值之一。然后尝试使用Toggle Reversed按钮反转列表。如您所见,除了有序列表的默认行为之外,还有很多可能性!
就像网络上无处不在的链接一样,拥有一个使链接更加强大的属性总是很好的。该download属性是几年前添加到规范中的,它允许您指定单击链接时应该下载而不是访问该链接。
<a href="/example.pdf" download>Download File</a>
如果没有值,该download属性会强制下载链接页面。或者,您可以提供一个值,浏览器将其用作下载资源的建议文件名。
<a href="/example.pdf" download="my-download.pdf">Download File</a>
作为涉及此属性的额外技巧,您可以将此功能与一些 JavaScript 结合起来,为用户创建一种下载他们自己创建的内容的方式。
在研究这篇文章时,这对我来说是另一篇全新的文章——而且在规范中似乎相当新。将decoding属性添加到图像元素可为浏览器提供图像解码提示。
<img src="/images/example.png" alt="Example" decoding="async">
此属性类似于async在脚本上使用该属性。加载图像所需的时间不会改变,但其“解码”的方式(因此其内容在视口中变得可见)由decoding属性决定。
值为:
如果您对解码图像的概念感到好奇,该规范有[一个很好的解释],并不难理解。
您可能已经知道,图像元素现在可以包含一个loading属性,将延迟加载作为一项功能放入浏览器中,这是我们多年来使用 JavaScript 解决方案所做的事情。但不要忘记该loading属性也可以用于<iframe>元素:
<iframe src="/page.html" width="300" height="250" loading="lazy">
复制
与图像一样,该loading属性接受eager(默认浏览器行为)或 的值lazy,这会延迟 iframe 内容的加载,直到 iframe 即将进入视口。此属性的唯一缺点是 Firefox 不支持在 iframe 上使用它(尽管 Firefox 确实支持loading图像)。
在大多数情况下,您会将表单输入和控件嵌套在<form>元素中。但是,如果您的应用程序或布局需要一些不同的东西,您可以选择将表单输入放在您想要的任何位置,并将其与任何<form>元素相关联——即使不是元素的父元素。
<form id="myForm" action="/form.php">
<input id="name">
<button type="submit">
</form>
<input type="email" form="myForm">
正如您在上面看到<input>的,表单外部的电子邮件的form属性设置为myForm,该属性设置为与表单的 相同的值id。submit您可以使用此属性和表单的 id将表单控件(包括按钮)与文档中的任何表单相关联。
您可以使用此演示页面进行尝试。表单使用 GET 请求提交,因此您可以在 URL 的查询字符串中看到提交的值。在该页面上,“评论”框位于<form>元素之外。
我对这个属性的唯一抱怨是它可能应该被赋予一个更独特的名称,也许像“formowner”之类的东西。尽管如此,如果您的设计或布局需要无父表单字段,请记住它是有用的。
我在处理块引用时已经提到cite过,但是这个属性也可以用于用<del>and<ins>元素标记的删除和插入。此外,两个元素都可以包含一个datetime属性。
<del
cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
datetime="2020-07-23"
>Firefox doesn't support CSS's standard <code>appearance</code> property, so you can only use it prefixed.</del>
<ins
cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
datetime="2020-07-23"
>The <code>appearance</code> property, previously only available prefixed in Firefox, can now be used in all modern browers unprefixed.</ins>
对于每个元素,这两个属性代表的内容如下:
在我的例子中,我使用了一些文本的例子,描述了一个在 Firefox 中需要供应商前缀的 CSS 属性。这可能是一篇旧博客文章。删除前缀后,我可以使用and元素来delete获取旧文本和insert新文本。然后我可以使用该属性来引用解决问题的错误报告。<del>``<ins>``cite
最后,这最后一个有点像老歌,但因为它不经常被使用,也许你甚至不知道它的存在。这是一个元素和一个属性的组合。
<select>如果下拉选项中包含一长串项目,则可以使用<optgroup>元素及其关联label属性将选项分组为可见类别:
<select>
<option>--Your Favourite Animal--</option>
<optgroup label="Birds">
<option>Blue Jay</option>
<option>Cardinal</option>
<option>Hummingbird</option>
</optgroup>
<optgroup label="Sea Creatures">
<option>Shark</option>
<option>Clownfish</option>
<option>Whale</option>
</optgroup>
<optgroup label="Mammals">
<option>Lion</option>
<option>Squirrel</option>
<option>Quokka</option>
</optgroup>
</select>
您可以使用以下 CodePen 来试用一个示例:
请注意,每个<optgroup>都有一个label为每个组定义标题的属性——但不能选择标题。作为额外提示,您还可以使用disabledan 上的属性来禁用下拉菜单<optgroup>该部分中的所有选项。<select>
这是我在研究本文时的另一对新属性,它们在规范中也是相对较新的。
这两个属性都可以与元素一起定义rel=preload,as如下<link>所示:
<link rel="preload"
as="image"
imagesrcset="images/example-480.png 480w,
images/example-800.png 800w,
images/example.png 2000w"
imagesizes="(max-width: 600px) 480px,
(max-width: 1000px) 800px,
1000px"
src="images/example.png"
alt="Example Image">
这里的使用rel=preload通知浏览器我们希望指定的资源优先加载,因此它们不会被脚本和样式表之类的东西阻塞。该as属性指定所请求内容的类型。
您可以使用href属性以及preload和预加载常规图像as。但最重要的是,您可以使用imagesrcsetandimagesizes属性,就像我在上面的代码中所做的那样。
这允许您预加载正确的图像,具体取决于视口的大小或您在imagesizes属性中指定的其他媒体功能。
除了我已经详细描述和演示的属性之外,您可能还想了解其他一些属性,我将在这里简要提及:
如果您使用过本文中提到的任何属性,或者如果您知道在您的项目中使用过的另一个 HTML 功能,请随时在评论中告诉我。
*请认真填写需求信息,我们会在24小时内与您取得联系。