st-common-ui-vue3
Version:
小尾巴通用 Vue3 UI 组件库
2 lines (1 loc) • 1.55 kB
JavaScript
"use strict";const e=require("vue"),l=require("../../node_modules/.pnpm/st-common-ui-utils@0.1.1/node_modules/st-common-ui-utils/es/utils/el-size-util.js"),s=e.defineComponent({name:"St3DText",__name:"St3DText",props:{content:{},color:{default:"#fff"},fontSize:{default:"3rem"},lineHeight:{default:void 0},layerCnt:{default:20},layerGap:{default:1.5},shadow:{type:Boolean,default:!0},shadowSize:{default:"5px"},base:{type:Boolean,default:!0},baseWidth:{default:"10px"},baseColor:{default:"#fb7299"},baseShadow:{type:Boolean,default:!0},perspective:{default:"1000px"}},setup(n){const r=n,o=t=>r.base&&t>=r.layerCnt/2+1?l.elSizePreHandler(r.baseWidth)+" "+r.baseColor:r.shadow&&t>=r.layerCnt/2-1?`${l.elSizePreHandler(r.shadowSize)} rgba(0, 0, 0, 0.25)`:"none";return(t,d)=>(e.openBlock(),e.createElementBlock("div",{class:"st-3d-text",style:e.normalizeStyle({"--perspective":e.unref(l).elSizePreHandler(t.perspective),color:t.color,fontSize:e.unref(l).elSizePreHandler(t.fontSize),lineHeight:t.lineHeight?e.unref(l).elSizePreHandler(t.lineHeight):e.unref(l).elSizePreHandler(t.fontSize)})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.layerCnt,(a,i)=>(e.openBlock(),e.createElementBlock("div",{key:a,class:"st-3d-text__layer",style:e.normalizeStyle({"--layer-gap":t.layerGap*-i+"px","-webkit-text-stroke":o(a),textShadow:t.baseShadow&&a>=r.layerCnt/2+1?"6px 0 6px rgba(0, 0, 0, 0.25), 5px 5px 5px rgba(0, 0, 0, 0.25), 0 6px 6px rgba(0, 0, 0, 0.25)":"none"})},e.toDisplayString(t.content),5))),128))],4))}});module.exports=s;