likes
comments
collection
share

修改和扩展element plus的样式

作者站长头像
站长
· 阅读数 13

一、用户故事

我们开发了一个业务组件库。业务组件库是需要基于公司内部的一个UI组件库。而公司的UI组件库又出“基于”element ui的。

公司的UI组件库是对element ui的主题色进行了修改,并且也对于一些组件进行了扩展。可惜的是,由于他们的版本是vu2版本。我们的业务组件库是vue3的element plus的版本。

二、需求分析

2.1 实现形式的考虑

2.2 续期的扩展

三、需求实现

3.1 主题色的改变

3.2 组件样式的扩展

  • element plus对于各种函数的定义

    • "b" 返回的是"namespace + '-' + block" 就是组件的顶级clasaName。

      • scss中使用了Mixins更加的风骚,通过"@mixin 和 @content" 来实现的
    • "mixin" 本质是混入css的片段

const _bem = (
  namespace: string,
  block: string,
  blockSuffix: string,
  element: string,
  modifier: string
) => {
  let cls = `${namespace}-${block}`
  if (blockSuffix) {
    cls += `-${blockSuffix}`
  }
  if (element) {
    cls += `__${element}`
  }
  if (modifier) {
    cls += `--${modifier}`
  }
  return cls
}