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

怎样开发可重用组件并发布到NPM

/ 摘要:本文着眼于使用具有内置功能样式组件来扩充HTML。...在过去几年中,人们对样式指南和模式库兴趣不断增加。由于开发人员设计师一般都分布在多个团队,所以大公司需要寻求实现一致性方法,比如提供简单颜色样本。不过对于我们来说,可以比他们做得更好。...但是通过用自定义元素 API 定义新标记,我们就可以用具有内置功能可重用元素来扩充HTML。 创建自定义元素很像在 React 创建一个组件 —— 但在这里是扩展了 HTMLElement 。...对于具有相应值属性,我们将在自定义元素类定义包含以下内容。...但是关于标记样式,我们自定义元素相当于空样式 。 要将HTMLCSS封装为组件一部分,还需要附加一个shadow DOM。 最好在构造函数执行此操作。

1.1K20

新一代响应式设计:适应多设备最佳解决方案

其中包括处理复杂布局交互元素方法,以及利用新技术工具来实现更高级响应式效果。 下面是正文~~~ 大家都知道响应式设计工作原理,但我们大多数开发人员仍在寻找最佳实践来实现它。...文件分离为我们提供了一种简单结构顺序,因此将媒体查询放置在每个组件,靠近它们自己样式,是最好位置。 现在,由于每个组件都有相同断点,将它们放入变量以便更轻松地维护代码会更好。...例如: Closed breakpoints 闭合断点 当我们使用具有开始结束值媒体查询时。例如: ,哪个更好用? 请仅使用闭合断点!除非是我们想要支持最大分辨率最后一个断点。...在这张图片中,HTML相同,但移动设备+平板电脑桌面版本看起来完全不同! 我所做是将“移动导航栏”样式放在移动+平板电脑断点上,将桌面的样式放在桌面断点上。...总结 从这篇文章需要了解重点是什么: 以小组件为单位工作 在单独文件定义SASS变量常见闭合断点 在每个需要组件中使用SASS变量断点 工作和思考时要“基本优先”!

18430
您找到你想要的搜索结果了吗?
是的
没有找到

技巧分享: 如何快速搭建一致统一设计系统

设计系统(作为一种设计相关技术产品),不仅仅只是一个设计框架,UI工具包或组件库。亦或是一套样式指南或代码指南。实际上,它所涵盖内容要远远多于以上设计内容总和。那它究竟是什么呢?...更进一步分析,对于设计系统重要部分讨论,虽然设计师们观点不一,争议不断,但就我而言,更偏向于从公司角度来分析:设计系统应该是能够让用户轻松了解到:什么公司?其使命是什么?...无需再引入任何新内容。尽管,这听起来可能有些极端或不可理解。但在我看来,却恰恰相反。正是由于在这方面的认识不同,才使许多设计师误入歧途,给产品UI设计带来更多问题。...也可以构建一些更炫酷部件 当设计构建一些组件时,设计师也可以组合多个组件来创建更复杂部件,如图下拉菜单组件: 该下拉菜单组件并未使用预定义样式库之外任何样式。...由于页边距在不同案例设置有所不同,因此设计师最好还是在页面样式表中使用“div”“wrapper”代码单独进行定义。

61810

技巧分享: 如何快速搭建一致统一设计系统

设计系统(作为一种设计相关技术产品),不仅仅只是一个设计框架,UI工具包或组件库。亦或是一套样式指南或代码指南。实际上,它所涵盖内容要远远多于以上设计内容总和。那它究竟是什么呢?...更进一步分析,对于设计系统重要部分讨论,虽然设计师们观点不一,争议不断,但就我而言,更偏向于从公司角度来分析:设计系统应该是能够让用户轻松了解到:什么公司?其使命是什么?...无需再引入任何新内容。尽管,这听起来可能有些极端或不可理解。但在我看来,却恰恰相反。正是由于在这方面的认识不同,才使许多设计师误入歧途,给产品UI设计带来更多问题。...也可以构建一些更炫酷部件 当设计构建一些组件时,设计师也可以组合多个组件来创建更复杂部件,如图下拉菜单组件: 该下拉菜单组件并未使用预定义样式库之外任何样式。...由于页边距在不同案例设置有所不同,因此设计师最好还是在页面样式表中使用“div”“wrapper”代码单独进行定义。

97120

编写模块化CSS:命名空间

我只向大家展示了如何处理单个块不同修饰符子代(或孙子代)元素。 但是如果有多个区块咱怎么办呐? 事情有点复杂。 我们使用一个网站范围导航来说明两个块之间关系。 ? 好啦。 现在有两个区块。...假设我把上面的代码转换成一个带有命名空间代码。HTML将完全相同(只加了少数class前缀)。 在这个例子要特别注意.o.c前缀: ? .o-.c-是什么意思呢?...如果你阅读Harry文章,要注意一下我命名空间不同于他。(待会儿我会分享有哪些不同内容)。...以下是我样式典型.o-button对象示例: ? 虽然对象不能影响外部结构,但它改变其内部结构是很合理。 例如,我提到.o-countdown计时器可以具有以下HTMLCSS: ?...如果您网站很简单,那么这是一个很好的开始,并且不需要为多个对象/组件使用相同标题样式。 但是举个栗子哈,如果你有一个带链接导航样式和你h5样式一致怎么办? 你会这样做吗? ?

2.6K70

面试题整理|45个CSS面试题

例如对一个站点中多个页面使用了同一套CSS样式表,而某些页面某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面。...2、多个HTML元素可以包含许多文档,可以在其中创建类。 3、要在复杂情况下对样式进行分组,请使用选择器分组方法。 Q7、使用CSS缺点?...Q17、如何设置h2h3标签相同样式? 通过用逗号(,)分隔符来定位多个元素 h2, h3 { color: blue; } Q18、CSSfloat属性如何使用?...visibility:hidden 表示该标签不可见,但在页面上为其分配了空间。标签已呈现,只是在页面上看不到。 Q28.CSS特异性是什么意思?...对于大型项目(具有多种布局内容类型站点,或在同一设计框架下具有多个品牌站点),使用模块化方法并将CSS拆分为多个文件更为明智。 跨文件拆分CSS可以更轻松地将任务打包给团队。

4.1K30

ReactJSReact-Native主要区别在哪里

您可以决定在要使用平台模拟器/仿真器上运行,也可以直接在自己设备上运行它。 DOM样式 React-Native不使用HTML来渲染应用程序,而是提供以类似方式工作替代组件。...要为您React-Native组件设置样式,您必须在Javascript创建样式表。...平台特定代码 使用相同代码集设计多个平台应用程序有时可能会压倒一切,您代码很快就会开始看起来很丑陋。...假设你可以控制你应用程序外观行为,你有两个选择: 您可以为应用程序定义通用设计,使其在两个平台上看起来完全相同,只要它保持直观,并不会混淆平台用户。...您可以为每个平台定义代码集,这意味着您将拥有不同DOM,样式表,甚至可能会有不同逻辑动画,以便遵循平台UIUX准则。

16.9K30

一键切换亮色模式暗色模式,用Figma搞定!

但是,某些中性颜色风格是不变,在任何一种模式下都不会改变。在Figma Design System,我们选择了白色黑色作为固定颜色,无论您使用哪种模式,该颜色都将保持不变。...另外,图像占位符颜色也是恒定,不会改变。 例如,在上图中,我们展示了该按钮在浅色深色主题中外观。图标,文本计数器具有恒定颜色。按钮背景有变化,但其中内容未更改。...1.1颜色样式-灰度样式 灰度颜色是可更改样式,因为在黑暗模式下应用相同颜色时时,您将不会获得与在明亮模式下相同效果。...请注意:可以将系统颜色作为背景,但例如按钮,标签等颜色应该从亮色或者暗色模式“常量样式调用。 2. 效果样式 效果样式是应用于设计系统某些组件微小更改效果。...如何在亮色模式暗色模式之间切换 设置设计系统后,就可以轻松地将组件模块切换为暗色模式了。为此,您将需要一个名为Appearance插件,该插件可以在Figma社区找到。

17.6K11

HTML 包含资源新思路

例如,我经常希望向页面添加额外 HTML,或者嵌入 SVG 文件内容,以便我们可以为其设置动画样式。...本周我在思考如何用一些新与 fetch 相关标记模式来实现这一点,例如 rel="preload" 或 HTML import,但我总是得出相同结论,即这些都不能使你方便地访问所取得文件内容。...值得注意是,如果你要导入包含多个元素 HTML 文件,我建议将其全部包装在 div ,以使 iframe 标记能够简单地查找 body第一个子节点。...好处 与我们过去使用其他模式相比,这种模式有一些很明显好处: 这是声明性。与大多数自定义 JavaScript 方法不同,这个方法是 HTML 驱动,它在标记目的非常清楚,一目了然。...例如对页面上所有图标使用可能会过重,但是对于需要进行动画样式特定图标来说,它可能会很好用。不过现在我只能做更多测试。

3.1K30

反思我这五六年来写过烂代码

什么是烂代码 每个人性格、技术水平和工作经历都不一样,看待“代码与烂代码”标准也各不相同,下图是一张比较出名关于在Code Review评判代码质量图片 逻辑混乱,实现复杂 代码可读性很差...接下来讨论一下在使用封装过程遇见问题 强行封装 现在需要封装一个商品组件,我们有两种思路 一种是根据支持传入某些查询条件,组件先查询商品,再进行展示,相当于组件需要负责查询展示 另一种是只接收一个商品参数...导致在不同业务场景,为了适配每个逻辑特殊性,额外做一些if..else判断。 后来我才理解到,封装并不是从物理位置把代码拆分到不同函数、类或文件,而应该是从概念上,定义良好输入输出。...rem 但在某些场景下,我们希望某个或某些文件下面的样式不被转换,因此可以使用postcss-px2rem-exclude,这个插件允许我们指定exclude参数来忽略某些文件单位自动转换 但如果我们如果需要在同一个样式...如果一个类有多个变更理由,那么它就具有多个职责。

16010

58道Vue常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度

所有的页面内容都包含在这个所谓主页面但在时候,还是会分开写(页面片段),然后在交互时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。...多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新 单页面的优点:用户体验,快,内容改变不需要重新加载整个页面,基于这一点spa对服务器压力较小;前后端分离;页面效果会比较炫酷(比如切换页面内容专场动画...项目中所需要资源文件图片,字体图标,样式文件等都可以放在这两个文件下,这是相同点 不相同点:assets 存放静态资源文件在项目打包时,也就是运行 npm run build 时会将 assets...36.请说下封装 vue 组件过程? 答: 建立组件模板,先把架子搭起来,写写样式,考虑组件基本逻辑。(os:思考1小时,码码10分钟,程序猿准则。)    准备好组件数据输入。...这种情况下,多个路由指定相同chunkName,会合并打包成一个js文件。 vuex常见面试题篇 56.vuex是什么?怎么使用?哪种功能场景使用它? 答:vue框架状态管理。

32.8K86

50个有价值CSS编写规则,让你写出更好CSS

基本样式是在页面加载后用户会看到样式,非基本样式是那些保持隐藏状态组件,如对话框通知。需要显示用户操作元素或组件。...13 、结合通用样式 通过将具有相同样式规则选择器分组来避免重复样式。你可以用逗号来分隔具有相同样式主体选择器。...20、规范化或重置你 CSS 每个浏览器都带有CSS元素默认样式,并且这些样式各不相同,因此,你东西可能在一个浏览器中看起来是一种方式,而在另一种浏览器不同,它可能具有你意想不到额外边框或形状...34 、 避免不断覆盖/撤消样式 一个巨大危险信号是你编写 CSS 样式,然后在其他地方编写具有不同相同 CSS,几乎覆盖了所有内容。如果你经常这样做,那么,你处理项目样式方式显然有问题。...44 、 让父级处理间距、位置大小 当为要在内容流中使用组件设置样式时,让内容内部间距定义大小,不包括位置边距等内容。让使用此组件容器来决定位置以及此组件与其他组件距离。

2.3K20

干货 | 响应式设计在携程火车票应用

2) 两个端使用同一个url: 利于seo,可以集中精力资源做一个urlseo,提升搜索引擎排名。以Google来说,网址不同内容相同情况下,虽不会将该网站列为恶意连结,但仍会影响评价。...由于项目中绝大部分模块样式代码即使移动端桌面端有所不同,也只需要书写两种即可,不必特意针对不同尺寸屏幕分别书写样式代码。据此可以试着来优化代码。...默认是h5样式,pc如果有所不同直接覆盖样式即可。这样就把移动端桌面端样式写在了一起,样式减少了大量媒体查询代码,并且.pc、.h5名字不比媒体查询代码更容易看懂吗?...为了保证两个端都有较好用户体验,某些组件(如城市选择器,日期选择器)不得不分别引入。这是导致尺寸增加最重要因素。要解决这个问题需要根据模块展示位置做不同处理。...一开始我们有考虑过是否可以把req这个对象必要字段序列化到html,比如说headers,这样就能保证前端也能完全有这套配置。但是考虑到这种做法太魔法,不太好理解,最终针对性出了解决方法。

53810

腾讯 Web UI 解决方案 QMUI Web : 探索与沉淀

设计理念 在制作框架过程,我们把框架需要特性进行整理思考,形成了一套对于该框架设计理念,在这些设计理念之中,最核心关键为通用于多个项目,高效迭代保持代码稳健,框架设计也遵循这三个核心点,...作为 UI 框架,框架内整合组件样式必须有能力剥离业务,才能跨项目使用。 能轻易控制整体样式。需要高效地迭代项目,样式整体控制必不可少。 保持代码稳健。...Class-name 命名规范 作为一个 Web UI 框架,编写代码主要是 CSS 与 HTML,而提到 CSS 与 HTML 编写,首先要处理是 Class-name 命名,在过往开发,Class-name...组合而不是继承 在处理组件时,继承方式是指一个组件类承担复杂功能,而组合方式则是把组件类拆分成一个基类,以及多个子类,每个子类承担功能不重复,对于我们主场景——频繁迭代,保持稳健,显然组合会更加适合...基础配置与组件 前文提到,框架中会有一份配置表,是各种 Sass 变量,这些变量控制了一个网页基本字体样式,链接颜色,通用组件样式配置等基础样式,在创建一个新项目时,应该先根据设计稿配置这些信息

1.9K30

12 种使用 Vue 最佳做法

-- 做法 --> 在事件中使用短横线命名 在发出定制事件时,最好使用短横线命名,这是因为在父组件...,我们使用相同语法来侦听该事件。...在 JS ,驼峰式声明是标准,在HTML,是短横线命名。因此,我们相应地使用它们。 幸运是,Vue 已经提供了驼峰式声明短横线命名之间转换,因此除了实际声明它们之外,我们不必担心任何事情。...基本组件应该相应地加上前缀 根据Vue样式指南,基本组件是仅包含以下内容组件HTML 元素 额外基础组件 第三方UI组件 为这些组件命名最佳实践是为它们提供前缀Base、V或App。...}).join(' ') }} 基本上,我们希望模板所有内容都直观明了。

1.1K10

【必看】58 道 Vue 常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度

所有的页面内容都包含在这个所谓主页面但在时候,还是会分开写(页面片段),然后在交互时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。...多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新 单页面的优点:用户体验,快,内容改变不需要重新加载整个页面,基于这一点spa对服务器压力较小;前后端分离;页面效果会比较炫酷(比如切换页面内容专场动画...项目中所需要资源文件图片,字体图标,样式文件等都可以放在这两个文件下,这是相同点 不相同点:assets 存放静态资源文件在项目打包时,也就是运行 npm run build 时会将 assets...36.请说下封装 vue 组件过程? 答: 建立组件模板,先把架子搭起来,写写样式,考虑组件基本逻辑。(os:思考1小时,码码10分钟,程序猿准则。)    准备好组件数据输入。...这种情况下,多个路由指定相同chunkName,会合并打包成一个js文件。 vuex常见面试题篇 56.vuex是什么?怎么使用?哪种功能场景使用它? 答:vue框架状态管理。

1.1K00

react组件用法深度分析

React 组件也一样, 它输入是 props,输出是关于 UI 描述。我们可以在多个 UI 重用单个组件组件也可以包含其他组件。...在 React ,React 元素接收属性列表称为 props 。使用函数组件时,你不必将包含属性列表对象命名为 props,但这是标准做法。...React 将这些样式对象转换为内联 CSS 样式属性。当然,这不是设置 React 组件样式最佳方法,但在条件样式,使用它非常方便。...JSX不是模板语言一些处理 HTML 库为它提供了模板语言。使用具有循环条件"增强"HTML 语法编写动态视图。然后,这些库使用 JavaScript 将模板转换为 DOM 操作。...如果我们给纯函数相同输入,我们将始终获得相同输出。如果 React 组件不依赖于其定义之外任何内容,我们也可以将该组件标记为纯组件。纯组件在没有任何问题情况下更有可能被重用。

5.4K20

react组件深度解读

React 组件也一样, 它输入是 props,输出是关于 UI 描述。我们可以在多个 UI 重用单个组件组件也可以包含其他组件。...在 React ,React 元素接收属性列表称为 props 。使用函数组件时,你不必将包含属性列表对象命名为 props,但这是标准做法。...React 将这些样式对象转换为内联 CSS 样式属性。当然,这不是设置 React 组件样式最佳方法,但在条件样式,使用它非常方便。...JSX不是模板语言一些处理 HTML 库为它提供了模板语言。使用具有循环条件"增强"HTML 语法编写动态视图。然后,这些库使用 JavaScript 将模板转换为 DOM 操作。...如果我们给纯函数相同输入,我们将始终获得相同输出。如果 React 组件不依赖于其定义之外任何内容,我们也可以将该组件标记为纯组件。纯组件在没有任何问题情况下更有可能被重用。

5.5K20

CSS 20大酷刑

这种做法有助于提高性能并保持代码可维护性。 ---- 5. 删除不必要字体 诸如Google Fonts之类服务使将自定义字体添加到任何页面变得容易。...以下是渐进式渲染一些关键概念技术: 「分段加载内容:」 将页面内容划分为多个模块或组件,并按照优先级逐步加载。通常,首屏内容、核心内容附加内容可以分别进行加载。...「分块渲染:」 将页面内容分为不同块或区域,并在加载完成每个块后立即呈现。这样,即使页面的某些部分尚未完全加载,用户仍然可以浏览已经呈现出来内容。...分段加载内容 与使用单个整站CSS文件不同,渐进式渲染是一种为单独组件定义独立样式技术。每个样式表会在HTML引用组件之前立即加载: <!...页面会更早可用,因为每个组件按顺序渲染;页面顶部内容可以在剩余内容加载时被查看。 懒加载 假设我们有一个包含多个段落网页,我们将通过分块加载渲染逐步显示这些段落。 <!

18830

Tailwind CSS (可能)是名过其实

你并不需要编写基础 CSS 样式规则,只需要直接在 HTML 应用已经事先定义类名。 这样类名还有很多。...上面这个例子可不夸张,我甚至可以说它是一个最简化例子了 —— 至少对于那些有明确要求、明确设计风格(基于不同屏幕尺寸作出响应式变化样式调整)应用来说,是这样。 那么要怎么组织这些类名呢?...我可不想像找威利一样去找元素字号(译者注:威利是儿童书籍《威利在哪里》的人物,读者需要在一张人山人海图片中找到威利) 我观点是,部分 HTML 元素会使用非常多样式,这种情况下应该考虑将样式与...PurgeCSS 会分析你内容 css 文件,首先它将 css 文件中使用选择器与内容文件选择器进行匹配,然后它会从 css 删除未使用选择器,从而生成更小 css 文件。...这还是挺香,我相信你也同意这种做法。 但今天工具,比如说 SASS (周下载量超过五百万),早就可以轻松创建工具类变量并在代码重用了。甚至原生 CSS 也已经支持使用变量。

2K20
领券