├── .commitlintrc.js
├── .eslintrc.js
├── .github
├── .pr-comment-ci-whitelist
├── ISSUE_TEMPLATE
│ ├── bug-report.zh-CN.yml
│ ├── config.yml
│ ├── feature-report.zh-CN.yml
│ └── new-component.zh-CN.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── auto-release-collection.yml
│ ├── demo
│ ├── pr-compressed-size.yml
│ ├── preview-publish.demo.yml
│ ├── pull-request.demo.yml
│ └── tag-push.demo.yml
│ ├── file-copy-repos.yml
│ ├── file-copy.yml
│ ├── issue-assignees.temp.yml
│ ├── issue-help-wanted.temp.yml
│ ├── issue-mark-duplicate.temp.yml
│ ├── issue-reply.temp.yml
│ ├── issue-synchronize.temp.yml
│ ├── issues-dailyclose-schedule.yml
│ ├── issues-dailynew-schedule.yml
│ ├── issues-statistics-schedule.yml
│ ├── pkg-pr-new.yml
│ ├── pr-spelling.template.yml
│ ├── preview-publish.yml
│ ├── preview.yml
│ ├── publish-components.yml
│ ├── publish.yml
│ ├── pull-request.yml
│ ├── service-update-schedule.yml
│ ├── test-build.yml
│ └── typos-config.toml
├── .gitignore
├── .husky
├── commit-msg
├── pre-commit
└── prepare-commit-msg
├── .prettierrc.js
├── .stylelintrc.js
├── .vscode
└── settings.json
├── LICENSE
├── README.md
├── README_zh-CN.md
├── docs
├── CODE_OF_CONDUCT.md
├── awesome.md
├── awesome_zh-CN.md
├── contact.md
├── contact_zh-CN.md
├── contributing.md
├── contributing_zh-CN.md
├── design
│ ├── TDesign_Axure_Library Guide.md
│ ├── index.md
│ ├── offices-task.md
│ ├── offices-task_zh-CN.md
│ ├── offices.md
│ └── offices_zh-CN.md
├── develop-install.md
├── develop-install_zh-CN.md
├── faq.md
├── faq_zh-CN.md
├── introduce.md
├── introduce_zh-CN.md
├── new-component.md
├── new-component_zh-CN.md
├── roadmap.md
├── roadmap_zh-CN.md
├── tech.md
└── tech_zh-CN.md
├── package.json
├── packages
├── auto-release-collection
│ ├── .eslintrc.js
│ ├── package.json
│ ├── src
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ └── utils.ts
│ └── tsconfig.json
├── components
│ ├── jest.config.js
│ ├── .babelrc
│ ├── .env
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── config
│ │ ├── footer.js
│ │ ├── header.js
│ │ ├── index.js
│ │ ├── locale.js
│ │ ├── mock.js
│ │ └── spline.js
│ ├── index.html
│ ├── package.json
│ ├── public
│ │ └── favicon.ico
│ ├── script
│ │ └── compile-less.js
│ ├── src
│ │ ├── components
│ │ │ ├── td-aegis
│ │ │ │ └── index.js
│ │ │ ├── td-avatar
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-backtop
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-code-block
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-code
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-contributors
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-aside
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-badge
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-content
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-copy
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-demo
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-empty
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-footer
│ │ │ │ ├── index.js
│ │ │ │ ├── portal.less
│ │ │ │ └── style.less
│ │ │ ├── td-doc-header
│ │ │ │ ├── index.js
│ │ │ │ ├── style.less
│ │ │ │ └── td-doc-issue
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── style.less
│ │ │ ├── td-doc-history
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-layout
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-phone
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-popup
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-search
│ │ │ │ ├── docsearch.less
│ │ │ │ ├── docsearch.min.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-tabs
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-doc-usage
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-header
│ │ │ │ ├── index.js
│ │ │ │ ├── portal.less
│ │ │ │ ├── style.less
│ │ │ │ └── td-collapse-menu
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── portal.less
│ │ │ │ │ └── style.less
│ │ │ ├── td-logo
│ │ │ │ ├── index.js
│ │ │ │ ├── portal.less
│ │ │ │ └── style.less
│ │ │ ├── td-message
│ │ │ │ ├── README.md
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-portal
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-select
│ │ │ │ ├── index.js
│ │ │ │ ├── portal.less
│ │ │ │ └── style.less
│ │ │ ├── td-stats
│ │ │ │ └── index.js
│ │ │ ├── td-switch
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ ├── td-theme-tabs
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ │ └── td-tooltip
│ │ │ │ ├── index.js
│ │ │ │ └── style.less
│ │ ├── font
│ │ │ ├── TCloudNumber.ttf
│ │ │ └── tencent-w7.ttf
│ │ ├── images
│ │ │ ├── add.svg
│ │ │ ├── angular-logo.svg
│ │ │ ├── backtop.svg
│ │ │ ├── bulletpoint.svg
│ │ │ ├── check.svg
│ │ │ ├── chevron-right.svg
│ │ │ ├── close.svg
│ │ │ ├── cloud-logo.svg
│ │ │ ├── code.svg
│ │ │ ├── codesign-logo.svg
│ │ │ ├── committee-logo.svg
│ │ │ ├── copy.svg
│ │ │ ├── fake-arrow.svg
│ │ │ ├── flutter-logo.svg
│ │ │ ├── git.svg
│ │ │ ├── github.svg
│ │ │ ├── groups
│ │ │ │ ├── design-group.png
│ │ │ │ ├── design-logo.svg
│ │ │ │ ├── flutter-group.png
│ │ │ │ ├── flutter-logo.svg
│ │ │ │ ├── react-group.png
│ │ │ │ ├── react-logo.svg
│ │ │ │ ├── vue-logo.svg
│ │ │ │ ├── vue2-group.png
│ │ │ │ ├── vue3-group.png
│ │ │ │ ├── wx-group.png
│ │ │ │ └── wx-logo.svg
│ │ │ ├── history.svg
│ │ │ ├── info.svg
│ │ │ ├── jump.svg
│ │ │ ├── link.svg
│ │ │ ├── logo.svg
│ │ │ ├── menu-application.svg
│ │ │ ├── menu-fold.svg
│ │ │ ├── menu-unfold.svg
│ │ │ ├── mobile.svg
│ │ │ ├── moon.svg
│ │ │ ├── more.svg
│ │ │ ├── prowork-logo.svg
│ │ │ ├── qq-logo.svg
│ │ │ ├── qrcode.svg
│ │ │ ├── react-logo.svg
│ │ │ ├── search.svg
│ │ │ ├── sun.svg
│ │ │ ├── taro-logo.png
│ │ │ ├── tdesign-logo.svg
│ │ │ ├── tdesign-qrcode.svg
│ │ │ ├── tencentcloud-logo.svg
│ │ │ ├── tips.svg
│ │ │ ├── translate.svg
│ │ │ ├── tuxiaocao-logo.svg
│ │ │ ├── tvision-logo.svg
│ │ │ ├── vue-logo.svg
│ │ │ ├── wenjuan-logo.svg
│ │ │ └── wx-logo.svg
│ │ ├── main.js
│ │ ├── styles
│ │ │ ├── animation.less
│ │ │ ├── dark.less
│ │ │ ├── docs.less
│ │ │ ├── main.less
│ │ │ ├── nprogress.less
│ │ │ ├── prism-theme-dark.less
│ │ │ ├── prism-theme.less
│ │ │ ├── reset.less
│ │ │ ├── timeline.less
│ │ │ └── vars.less
│ │ └── utils
│ │ │ ├── index.js
│ │ │ └── locale.js
│ ├── test
│ │ └── index.test.js
│ └── vite.config.js
└── theme-generator
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README-zh_CN.md
│ ├── README.md
│ ├── babel.config.js
│ ├── jsconfig.json
│ ├── package.json
│ ├── public
│ ├── favicon.ico
│ └── index.html
│ ├── src
│ ├── Generator.vue
│ ├── README.md
│ ├── color-panel
│ │ ├── assets
│ │ │ ├── AgapanthusPurple
│ │ │ ├── DavidiaGreen
│ │ │ ├── GovRed
│ │ │ ├── HyacinthBlue
│ │ │ ├── MarigoldOrange
│ │ │ ├── MultifloraRed
│ │ │ ├── PetelotiiYellow
│ │ │ ├── PlumbagoBlue
│ │ │ ├── TCloudBlack
│ │ │ ├── TaxusRed
│ │ │ ├── TencentBlue
│ │ │ ├── TourismPurple
│ │ │ ├── ViridifloraGreen
│ │ │ ├── WeChatGreen
│ │ │ └── YulaniaPink
│ │ ├── components
│ │ │ ├── ColorColumn
│ │ │ │ └── index.vue
│ │ │ └── ColorContent
│ │ │ │ ├── ColorCollapse.vue
│ │ │ │ └── index.vue
│ │ └── utils
│ │ │ └── const.js
│ ├── common
│ │ ├── Collapse
│ │ │ └── index.vue
│ │ ├── ColorPicker
│ │ │ ├── Alpha.vue
│ │ │ ├── Saturation.vue
│ │ │ ├── Slider.vue
│ │ │ └── index.vue
│ │ ├── SegmentSelection
│ │ │ └── index.vue
│ │ ├── SizeSlider
│ │ │ └── index.vue
│ │ ├── StickyThemeDisplay
│ │ │ └── index.vue
│ │ ├── SwitchTabs
│ │ │ ├── BoxshadowSvg.vue
│ │ │ ├── ColorSvg.vue
│ │ │ ├── FontSvg.vue
│ │ │ ├── RadiusSvg.vue
│ │ │ ├── SizeSvg.vue
│ │ │ └── index.vue
│ │ ├── Themes
│ │ │ ├── built-in
│ │ │ │ ├── css
│ │ │ │ │ ├── mobile
│ │ │ │ │ │ ├── TDesign
│ │ │ │ │ │ │ ├── dark.css
│ │ │ │ │ │ │ └── light.css
│ │ │ │ │ │ └── common
│ │ │ │ │ │ │ ├── font.css
│ │ │ │ │ │ │ └── radius.css
│ │ │ │ │ └── web
│ │ │ │ │ │ ├── TCloud
│ │ │ │ │ │ ├── dark.css
│ │ │ │ │ │ ├── extra.css
│ │ │ │ │ │ └── light.css
│ │ │ │ │ │ ├── TDesign
│ │ │ │ │ │ ├── dark.css
│ │ │ │ │ │ └── light.css
│ │ │ │ │ │ └── common
│ │ │ │ │ │ ├── font.css
│ │ │ │ │ │ ├── radius.css
│ │ │ │ │ │ └── size.css
│ │ │ │ └── svg
│ │ │ │ │ ├── CulturalTourism
│ │ │ │ │ ├── GovService
│ │ │ │ │ ├── SmartRetail
│ │ │ │ │ ├── TDesignOriginal
│ │ │ │ │ ├── TencentCloud
│ │ │ │ │ ├── TencentEducation
│ │ │ │ │ ├── TencentGames
│ │ │ │ │ ├── TencentHealthcare
│ │ │ │ │ ├── TencentQuestionnaire
│ │ │ │ │ ├── TencentSafe
│ │ │ │ │ └── WeChatPay
│ │ │ ├── iframe.js
│ │ │ ├── index.js
│ │ │ ├── preset.js
│ │ │ └── token.js
│ │ ├── i18n
│ │ │ ├── en-US.js
│ │ │ ├── mixin.js
│ │ │ └── zh-CN.js
│ │ └── utils
│ │ │ ├── animation.js
│ │ │ ├── index.js
│ │ │ └── vars.css
│ ├── dock
│ │ ├── index.vue
│ │ └── svg
│ │ │ ├── AdjustSvg.vue
│ │ │ ├── DownloadSvg.vue
│ │ │ ├── PaletteSvg.vue
│ │ │ ├── RecoverSvg.vue
│ │ │ └── SettingSvg.vue
│ ├── font-panel
│ │ ├── built-in
│ │ │ ├── font-size.js
│ │ │ └── line-height.js
│ │ ├── components
│ │ │ ├── FontColorAdjust.vue
│ │ │ ├── FontColorSvg.vue
│ │ │ ├── LineHeightAdjust.vue
│ │ │ ├── LineHeightSvg.vue
│ │ │ └── SizeAdjust.vue
│ │ └── index.vue
│ ├── main.js
│ ├── panel-drawer
│ │ └── index.vue
│ ├── radius-panel
│ │ ├── built-in
│ │ │ └── border-radius.js
│ │ └── index.vue
│ ├── recommend-themes
│ │ ├── PickedSvg.vue
│ │ └── index.vue
│ ├── shadow-panel
│ │ ├── components
│ │ │ ├── ShadowCard.vue
│ │ │ ├── ShadowEditor.vue
│ │ │ └── ShadowLayer.vue
│ │ ├── const.js
│ │ └── index.vue
│ ├── size-panel
│ │ ├── built-in
│ │ │ └── size-map.js
│ │ ├── components
│ │ │ ├── SizeAdjust.vue
│ │ │ └── SizeDisplay.vue
│ │ ├── index.vue
│ │ └── svg
│ │ │ ├── HorizontalPaddingAdjustSvg.vue
│ │ │ ├── HorizontalPaddingSvg.vue
│ │ │ ├── MarginAdjustSvg.vue
│ │ │ ├── MarginSvg.vue
│ │ │ ├── PopupPaddingAdjustSvg.vue
│ │ │ ├── PopupPaddingSvg.vue
│ │ │ ├── SectionDynamicSvg.vue
│ │ │ ├── SectionLeftSvg.vue
│ │ │ ├── SectionRightSvg.vue
│ │ │ ├── SizeAdjustSvg.vue
│ │ │ ├── SizeSvg.vue
│ │ │ ├── VerticalPaddingAdjustSvg.vue
│ │ │ └── VerticalPaddingSvg.vue
│ └── styles
│ │ ├── reset.min.css
│ │ └── tdesign.min.css
│ └── vue.config.js
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── services
├── CORS
├── notice.json
└── update-components-notice.js
└── site
├── .eslintignore
├── .eslintrc
├── .gitignore
├── README.md
├── commitlint.config.js
├── contributor.html
├── index.html
├── package.json
├── plugin-tdoc
├── index.js
├── md-to-vue.js
└── transforms.js
├── postcss.config.js
├── public
├── component-lottie-dark
│ ├── data.json
│ └── images
│ │ ├── img_0.png
│ │ ├── img_1.png
│ │ ├── img_10.png
│ │ ├── img_11.png
│ │ ├── img_12.png
│ │ ├── img_13.png
│ │ ├── img_14.png
│ │ ├── img_15.png
│ │ ├── img_16.png
│ │ ├── img_17.png
│ │ ├── img_18.png
│ │ ├── img_19.png
│ │ ├── img_2.png
│ │ ├── img_20.png
│ │ ├── img_21.png
│ │ ├── img_3.png
│ │ ├── img_4.png
│ │ ├── img_5.png
│ │ ├── img_6.png
│ │ ├── img_7.png
│ │ ├── img_8.png
│ │ └── img_9.png
├── component-lottie-light
│ ├── data.json
│ └── images
│ │ ├── img_0.png
│ │ ├── img_1.png
│ │ ├── img_10.png
│ │ ├── img_11.png
│ │ ├── img_12.png
│ │ ├── img_13.png
│ │ ├── img_14.png
│ │ ├── img_15.png
│ │ ├── img_16.png
│ │ ├── img_17.png
│ │ ├── img_18.png
│ │ ├── img_19.png
│ │ ├── img_2.png
│ │ ├── img_20.png
│ │ ├── img_21.png
│ │ ├── img_3.png
│ │ ├── img_4.png
│ │ ├── img_5.png
│ │ ├── img_6.png
│ │ ├── img_7.png
│ │ ├── img_8.png
│ │ └── img_9.png
├── favicon.ico
└── home
│ ├── component-dark.mp4
│ ├── component-light.mp4
│ ├── compressed-banner-dark.png
│ └── compressed-banner.png
├── spline
├── README.md
└── design
│ ├── assets
│ └── runtime.js
│ ├── color_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── color_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── font_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── font_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── icon_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── icon_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── layout_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── layout_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── mode_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── mode_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── motion_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── motion_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ ├── value_dark
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
│ └── value_light
│ ├── index.html
│ ├── runtime.js
│ └── scene.json
├── src
├── App.vue
├── assets
│ └── logo.png
├── components
│ ├── all-icons.vue
│ ├── assets
│ │ ├── Adobe-XD-Mobile-dark.png
│ │ ├── Adobe-XD-Mobile.png
│ │ ├── Adobe-XD-Web-dark.png
│ │ ├── Adobe-XD-Web.png
│ │ ├── Axure-Mobile-dark.png
│ │ ├── Axure-Mobile.png
│ │ ├── Axure-Web-dark.png
│ │ ├── Axure-Web.png
│ │ ├── CoDesign-dark.png
│ │ ├── CoDesign.png
│ │ ├── Figma-Mobile-dark.png
│ │ ├── Figma-Mobile.png
│ │ ├── Figma-Web-dark.png
│ │ ├── Figma-Web.png
│ │ ├── Sketch-Mobile-dark.png
│ │ ├── Sketch-Mobile.png
│ │ ├── Sketch-TDesignMaker-dark.png
│ │ ├── Sketch-TDesignMaker.png
│ │ ├── Sketch-Web-dark.png
│ │ ├── Sketch-Web.png
│ │ ├── Starter-UIkit-mobile-dark.png
│ │ ├── Starter-UIkit-mobile.png
│ │ ├── Starter-UIkit-pc-dark.png
│ │ ├── Starter-UIkit-pc.png
│ │ ├── TDesign-Js-dark.png
│ │ ├── TDesign-Js.png
│ │ ├── TDesign-Pixso-dark.png
│ │ ├── TDesign-Pixso.png
│ │ ├── modao-dark.png
│ │ └── modao.png
│ ├── avatar.vue
│ ├── design-source.vue
│ └── download-dialog.vue
├── consts.js
├── contributor.js
├── docs
│ └── design
│ │ ├── offices-task.md
│ │ ├── offices-task_zh-CN.md
│ │ ├── offices.md
│ │ └── offices_zh-CN.md
├── main.js
├── pages
│ ├── about
│ │ ├── index.vue
│ │ └── release.vue
│ ├── design
│ │ ├── assets
│ │ │ ├── TCloudNumber-Regular.ttf
│ │ │ ├── attach.svg
│ │ │ ├── color
│ │ │ │ └── board.svg
│ │ │ ├── icon
│ │ │ │ ├── Arc.png
│ │ │ │ ├── Moderate.png
│ │ │ │ ├── Simplify.png
│ │ │ │ ├── accurate.png
│ │ │ │ ├── angle-1.png
│ │ │ │ ├── angle-2-left.png
│ │ │ │ ├── angle-2-right.png
│ │ │ │ ├── arc-1-left.png
│ │ │ │ ├── arc-1-right.png
│ │ │ │ ├── canvas-1.png
│ │ │ │ ├── canvas-2.png
│ │ │ │ ├── canvas-3-left.png
│ │ │ │ ├── canvas-3-right.png
│ │ │ │ ├── canvas-4-left-bottom.png
│ │ │ │ ├── canvas-4-left.png
│ │ │ │ ├── canvas-4-right-bottom.png
│ │ │ │ ├── canvas-4-right.png
│ │ │ │ ├── easy-1-left-bottom.png
│ │ │ │ ├── easy-1-left.png
│ │ │ │ ├── easy-1-right-bottom.png
│ │ │ │ ├── easy-1-right.png
│ │ │ │ ├── fracture.png
│ │ │ │ ├── grid-1.png
│ │ │ │ ├── grid-2.png
│ │ │ │ ├── grid-3-left.png
│ │ │ │ ├── grid-3-right.png
│ │ │ │ ├── line-1.png
│ │ │ │ ├── line-2.png
│ │ │ │ ├── line-3.png
│ │ │ │ ├── line-4.png
│ │ │ │ ├── round-1.png
│ │ │ │ ├── round-2-left.png
│ │ │ │ └── round-2-right.png
│ │ │ ├── layout
│ │ │ │ ├── l-1.jpg
│ │ │ │ ├── l-10.jpg
│ │ │ │ ├── l-11.jpg
│ │ │ │ ├── l-12.jpg
│ │ │ │ ├── l-13.jpg
│ │ │ │ ├── l-14.jpg
│ │ │ │ ├── l-15.jpg
│ │ │ │ ├── l-16.jpg
│ │ │ │ ├── l-17.jpg
│ │ │ │ ├── l-2.jpg
│ │ │ │ ├── l-3.jpg
│ │ │ │ ├── l-4.jpg
│ │ │ │ ├── l-5.jpg
│ │ │ │ ├── l-6.jpg
│ │ │ │ ├── l-7.jpg
│ │ │ │ ├── l-8.jpg
│ │ │ │ └── l-9.jpg
│ │ │ ├── mode
│ │ │ │ └── starter.png
│ │ │ ├── motion
│ │ │ │ ├── X_Axis.json
│ │ │ │ ├── X_Axis_dark.json
│ │ │ │ ├── Y_Axis.json
│ │ │ │ ├── Y_Axis_dark.json
│ │ │ │ ├── Z_Axis.json
│ │ │ │ ├── Z_Axis_dark.json
│ │ │ │ ├── container_trans.json
│ │ │ │ ├── container_trans_dark.json
│ │ │ │ ├── container_trans_sample.json
│ │ │ │ ├── container_trans_sample_dark.json
│ │ │ │ ├── download.svg
│ │ │ │ ├── ease-in.svg
│ │ │ │ ├── ease-out.svg
│ │ │ │ ├── easing.svg
│ │ │ │ ├── fade_in_out.json
│ │ │ │ ├── fade_in_out_dark.json
│ │ │ │ └── linear.svg
│ │ │ ├── source
│ │ │ │ ├── axure-logo.svg
│ │ │ │ ├── codesign-logo.svg
│ │ │ │ ├── emoji-light.png
│ │ │ │ ├── figma-logo.svg
│ │ │ │ ├── jssj-logo.svg
│ │ │ │ ├── mastergo-logo.svg
│ │ │ │ ├── md-logo.svg
│ │ │ │ ├── pixso-logo.svg
│ │ │ │ ├── ry-logo.svg
│ │ │ │ ├── sketch-logo.svg
│ │ │ │ └── xd-logo.svg
│ │ │ ├── trade
│ │ │ │ ├── education.png
│ │ │ │ ├── health.png
│ │ │ │ ├── map.png
│ │ │ │ ├── political.png
│ │ │ │ ├── power.png
│ │ │ │ ├── safe.png
│ │ │ │ └── travel.png
│ │ │ └── values
│ │ │ │ ├── banner-dark.png
│ │ │ │ ├── banner-light.png
│ │ │ │ └── banner.jpg
│ │ ├── color.vue
│ │ ├── color_zh-CN.vue
│ │ ├── dark.vue
│ │ ├── dark_zh-CN.vue
│ │ ├── fonts.vue
│ │ ├── fonts_zh-CN.vue
│ │ ├── icon.vue
│ │ ├── icon_zh-CN.vue
│ │ ├── index.vue
│ │ ├── index_zh-CN.vue
│ │ ├── layout.vue
│ │ ├── layout_zh-CN.vue
│ │ ├── motion.vue
│ │ ├── motion_zh-CN.vue
│ │ ├── source.vue
│ │ ├── source_zh-CN.vue
│ │ ├── trade.vue
│ │ ├── values.vue
│ │ └── values_zh-CN.vue
│ ├── home
│ │ ├── assets
│ │ │ ├── TencentSans-W7.ttf
│ │ │ ├── angular-logo.svg
│ │ │ ├── ax-logo.svg
│ │ │ ├── banner-dark.glb
│ │ │ ├── banner-dark.hdr
│ │ │ ├── banner-thumb-dark.jpg
│ │ │ ├── banner-thumb.jpg
│ │ │ ├── banner.glb
│ │ │ ├── banner.hdr
│ │ │ ├── breathe-bottom-dark.png
│ │ │ ├── breathe-bottom.png
│ │ │ ├── breathe-top-dark.png
│ │ │ ├── breathe-top.png
│ │ │ ├── component-swiper
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 10.svg
│ │ │ │ ├── 11.svg
│ │ │ │ ├── 12.svg
│ │ │ │ ├── 13.svg
│ │ │ │ ├── 14.svg
│ │ │ │ ├── 15.svg
│ │ │ │ ├── 16.svg
│ │ │ │ ├── 17.svg
│ │ │ │ ├── 18.svg
│ │ │ │ ├── 19.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 20.svg
│ │ │ │ ├── 21.svg
│ │ │ │ ├── 22.svg
│ │ │ │ ├── 3.svg
│ │ │ │ ├── 4.svg
│ │ │ │ ├── 5.svg
│ │ │ │ ├── 6.svg
│ │ │ │ ├── 7.svg
│ │ │ │ ├── 8.svg
│ │ │ │ └── 9.svg
│ │ │ ├── figma-logo.svg
│ │ │ ├── flutter-logo.svg
│ │ │ ├── line-dark.svg
│ │ │ ├── line-light.svg
│ │ │ ├── miniapp-dark.png
│ │ │ ├── miniapp-light.png
│ │ │ ├── miniapp.png
│ │ │ ├── miniprogram-logo.svg
│ │ │ ├── mobile-dark.png
│ │ │ ├── mobile-light.png
│ │ │ ├── mobile.png
│ │ │ ├── qq-logo.svg
│ │ │ ├── react-logo.svg
│ │ │ ├── rope-dark.png
│ │ │ ├── rope.png
│ │ │ ├── sketch-logo.svg
│ │ │ ├── taro-logo.png
│ │ │ ├── tdesign-flow-dark.gif
│ │ │ ├── tdesign-flow-light.gif
│ │ │ ├── tdesign-flow.png
│ │ │ ├── tdesign-profile.png
│ │ │ ├── tdesign-starter-dark.svg
│ │ │ ├── tdesign-starter.svg
│ │ │ ├── vue-logo.svg
│ │ │ ├── web-dark.png
│ │ │ ├── web-light.png
│ │ │ └── xd-logo.svg
│ │ ├── avatar.vue
│ │ ├── banner.vue
│ │ ├── component-list.vue
│ │ ├── consts.js
│ │ ├── index.vue
│ │ ├── index_zh-CN.vue
│ │ └── stats.module.js
│ └── mixins
│ │ ├── anchor.js
│ │ └── page-load.js
├── routes.js
├── site-en.config.mjs
├── site.config.mjs
└── style
│ ├── color.less
│ ├── fonts.less
│ ├── home.less
│ ├── icon.less
│ ├── index.less
│ ├── layout.less
│ ├── motion.less
│ └── source.less
└── vite.config.js
/.commitlintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = { extends: ['@commitlint/config-conventional'] };
2 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | node: true,
5 | browser: true,
6 | es6: true,
7 | },
8 | extends: ['eslint:recommended', 'prettier'],
9 | plugins: ['html', 'prettier'],
10 | rules: {
11 | 'prettier/prettier': ['error', {}, { usePrettierrc: true }],
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/.github/.pr-comment-ci-whitelist:
--------------------------------------------------------------------------------
1 | uyarn
2 | anlyyao
3 | chaishi
4 | PengYYYYY
5 | carolin913
6 | HaixingOoO
7 | NWYLZW
8 | ZWkang
9 | jarmywang
10 | honkinglin
11 | liweijie0812
12 | leejim
13 | xiaosansiji
14 | Luozf12345
15 | zhangpaopao0609
16 | RSS1102
17 | RylanBot
18 | Wesley-0808
19 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 | contact_links:
3 | - name: 使用 issue-helper 新建
4 | url: https://Tencent.github.io/tdesign/issue-helper/?lang=zh-CN&repo=Tencent/tdesign
5 | about: 使用 https://Tencent.github.io/tdesign/issue-helper/ 创建 issue,其中包含 bug 和 feature,表单提交更加严格。
6 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-report.zh-CN.yml:
--------------------------------------------------------------------------------
1 | name: 反馈新功能
2 | description: 通过 github 模板进行新功能反馈。
3 | title: "[组件名称] 描述问题的标题"
4 | labels: [💪🏻 enhancement,🧐 unconfirmed]
5 | body:
6 | - type: markdown
7 | attributes:
8 | value: |
9 | # 欢迎你的参与
10 | tdesign 的 Issue 列表接受 bug 报告或是新功能请求。也可加入官方社区:
11 |
12 | 在发布一个 Issue 前,请确保:
13 | - 在 [常见问题](https://tdesign.tencent.com/about/faq)、[更新日志](https://tdesign.tencent.com/about/release) 和 [旧Issue列表](https://github.com/Tencent/tdesign/issues?q=is%3Aissue) 中搜索过你的问题。(你的问题可能已有人提出,也可能已在最新版本中被修正)
14 | - 如果你发现一个已经关闭的旧 Issue 在最新版本中仍然存在,不要在旧 Issue 下面留言,请建一个新的 issue。
15 |
16 | - type: textarea
17 | id: functionContent
18 | attributes:
19 | label: 这个功能解决了什么问题
20 | description: 请详尽说明这个需求的用例和场景。最重要的是:解释清楚是怎样的用户体验需求催生了这个功能上的需求。我们将考虑添加在现有 API 无法轻松实现的功能。新功能的用例也应当足够常见。
21 | placeholder: 请填写
22 | validations:
23 | required: true
24 |
25 | - type: textarea
26 | id: functionalExpectations
27 | attributes:
28 | label: 你建议的方案是什么
29 | placeholder: 请填写
30 | validations:
31 | required: true
32 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/new-component.zh-CN.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 新组件
3 | about: 新组件招募
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
14 | ## 组件名称中英文
15 |
16 |
17 | ### 交互稿
18 |
19 |
22 | 交互稿:
23 |
24 | ### 设计稿
25 |
26 | 设计稿:
27 |
28 | 已实现的技术栈:
29 |
30 | - [ ] tdesign-vue
31 | - [ ] tdesign-vue-next
32 | - [ ] tdesign-react
33 |
34 | ### 参与贡献
35 |
36 | 如果你想要认领组件开发,请在本 issue 中评论认领并预估提交 PR 时间,例:
37 |
38 | > “我认领这个组件 tdesign-vue 仓库的实现任务,预计 x 日后提交”
39 |
40 | 请尽量在预期时间内完成,超期后 PMC 同学可能会联系其他同学接手实现。
41 |
42 | 详细提交过程请参考:[如何贡献](https://tdesign.tencent.com/about/contributing)。
43 |
44 | 欢迎填写[《贡献者加入意向收集》](https://wj.qq.com/s2/9772260/7cbe/)问卷加入 TDesign 贡献者群,参与过程中遇到的各类问题可以得到实时解答和指引。
45 |
46 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
6 |
7 | ### 🤔 这个 PR 的性质是?
8 |
9 | - [ ] 日常 bug 修复
10 | - [ ] 新特性提交
11 | - [ ] 文档改进
12 | - [ ] 演示代码改进
13 | - [ ] 组件样式/交互改进
14 | - [ ] CI/CD 改进
15 | - [ ] 重构
16 | - [ ] 代码风格优化
17 | - [ ] 测试用例
18 | - [ ] 分支合并
19 | - [ ] 其他
20 |
21 | ### 🔗 相关 Issue
22 |
23 |
26 |
27 | ### 💡 需求背景和解决方案
28 |
29 |
34 |
35 | ### 📝 更新日志
36 |
37 |
40 |
41 | - fix(组件名称): 处理问题或特性描述 ...
42 |
43 | - [ ] 本条 PR 不需要纳入 Changelog
44 |
45 | ### ☑️ 请求合并前的自查清单
46 |
47 | ⚠️ 请自检并全部**勾选全部选项**。⚠️
48 |
49 | - [ ] 文档已补充或无须补充
50 | - [ ] 代码演示已提供或无须提供
51 | - [ ] TypeScript 定义已补充或无须补充
52 | - [ ] Changelog 已提供或无须提供
53 |
--------------------------------------------------------------------------------
/.github/workflows/auto-release-collection.yml:
--------------------------------------------------------------------------------
1 | name: auto-release-collection
2 | on:
3 | schedule:
4 | # 相关语法 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07 would run a command on the first and fifteenth of each month
5 | - cron: '0 2 1,8,15,22 * *'
6 |
7 | jobs:
8 | release-collection:
9 | if: github.repository == 'Tencent/tdesign'
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout
13 | uses: actions/checkout@v4
14 | - uses: actions/setup-node@v4
15 | with:
16 | node-version: 18
17 | - uses: pnpm/action-setup@v4
18 |
19 | - name: Install Dependencies
20 | run: pnpm install
21 | - name: run auto-release-collection
22 | env:
23 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24 | run: pnpm run auto-release-collection
25 |
--------------------------------------------------------------------------------
/.github/workflows/demo/pr-compressed-size.yml:
--------------------------------------------------------------------------------
1 | name: Compressed Size
2 |
3 | on:
4 | pull_request:
5 | types: [opened, synchronize]
6 |
7 | jobs:
8 | compressed-size:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v4
12 | with:
13 | submodules: recursive
14 | - uses: 94dreamer/compressed-size-action@master
15 | with:
16 | repo-token: "${{ secrets.GITHUB_TOKEN }}"
17 | pattern: "./dist/**/*.{js,css}"
--------------------------------------------------------------------------------
/.github/workflows/demo/preview-publish.demo.yml:
--------------------------------------------------------------------------------
1 | # 文件名建议统一为 preview-publish
2 | # 应用 preview.yml 的 demo
3 |
4 | # name: PREVIEW_PUBLISH
5 |
6 | # on:
7 | # workflow_run:
8 | # workflows: ["MAIN_PULL_REQUEST"]
9 | # types:
10 | # - completed
11 |
12 | # jobs:
13 | # call-preview:
14 | # uses: Tencent/tdesign/.github/workflows/preview.yml@main
15 | # secrets:
16 | # TDESIGN_SURGE_TOKEN: ${{ secrets.TDESIGN_SURGE_TOKEN }}
17 |
--------------------------------------------------------------------------------
/.github/workflows/demo/pull-request.demo.yml:
--------------------------------------------------------------------------------
1 | # 文件名建议统一为 pull-request.yml
2 | # 应用 test-build.yml 的 demo
3 | # 要求 package.json 提供 lint test site:preview
4 |
5 | # name: MAIN_PULL_REQUEST
6 |
7 | # on:
8 | # pull_request:
9 | # branches: [develop, main]
10 | # types: [opened, synchronize, reopened]
11 |
12 | # jobs:
13 | # call-test-build:
14 | # uses: Tencent/tdesign/.github/workflows/test-build.yml@main
--------------------------------------------------------------------------------
/.github/workflows/demo/tag-push.demo.yml:
--------------------------------------------------------------------------------
1 | # 文件名建议统一为 tag-push.yml
2 | # 应用 publish.yml 的 demo
3 |
4 | # name: TAG_PUSH
5 |
6 | # on: create
7 |
8 | # jobs:
9 | # call-publish:
10 | # uses: Tencent/tdesign/.github/workflows/publish.yml@main
11 | # secrets:
12 | # TDESIGN_SURGE_TOKEN: ${{ secrets.TDESIGN_SURGE_TOKEN }}
13 | # TDESIGN_NPM_TOKEN: ${{ secrets.TDESIGN_NPM_TOKEN }}
--------------------------------------------------------------------------------
/.github/workflows/file-copy.yml:
--------------------------------------------------------------------------------
1 | name: Copy to One Repo
2 | # wanted/duplicate/reply/close
3 |
4 | on:
5 | workflow_call:
6 | inputs:
7 | repo:
8 | required: true
9 | type: string
10 | secrets:
11 | PERSONAL_TOKEN:
12 | required: true
13 |
14 | jobs:
15 | copy:
16 | runs-on: ubuntu-latest
17 | steps:
18 | - name: Copycat
19 | uses: andstor/copycat-action@v3
20 | with:
21 | personal_token: ${{ secrets.PERSONAL_TOKEN }}
22 | src_path: /.github/workflows
23 | src_branch: main
24 | dst_path: /.github/
25 | dst_branch: develop
26 | dst_owner: Tencent
27 | dst_repo_name: ${{ inputs.repo }}
28 | filter: '**/*.temp.yml'
29 | username: 94dreamer
30 | email: 503633021@qq.com
31 | commit_message: 'ci: update files "/.github/workflows" from "Tencent/tdesign"'
--------------------------------------------------------------------------------
/.github/workflows/issue-assignees.temp.yml:
--------------------------------------------------------------------------------
1 | # force copy from tencent/tdesign
2 | name: Issue Add Assigness
3 |
4 | on:
5 | issues:
6 | types: [opened, edited]
7 |
8 | jobs:
9 | mark-duplicate:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - if: github.event.label.name != 'new component' && github.event.label.name != 'issueshoot'
13 | uses: wow-actions/auto-comment@v1
14 | with:
15 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16 | issuesOpened: |
17 | 👋 @{{ author }},感谢给 TDesign 提出了 issue。
18 | 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。
19 |
--------------------------------------------------------------------------------
/.github/workflows/issue-help-wanted.temp.yml:
--------------------------------------------------------------------------------
1 | # force copy from tencent/tdesign
2 | name: Issue Help wanted
3 | on:
4 | issues:
5 | types:
6 | - labeled
7 | jobs:
8 | add-comment:
9 | if: github.event.label.name == 'help wanted'
10 | runs-on: ubuntu-latest
11 | permissions:
12 | issues: write
13 | steps:
14 | - name: Add comment
15 | uses: peter-evans/create-or-update-comment@v1
16 | with:
17 | issue-number: ${{ github.event.issue.number }}
18 | body: |
19 | 任何人都可以处理此问题。
20 | **请务必在您的 `pull request` 中引用此问题。** :sparkles:
21 | 感谢你的贡献! :sparkles:
22 | reactions: heart
--------------------------------------------------------------------------------
/.github/workflows/issue-mark-duplicate.temp.yml:
--------------------------------------------------------------------------------
1 | # force copy from tencent/tdesign
2 | # 当在 issue 的 comment 回复类似 `Duplicate of #111` 这样的话,issue 将被自动打上 重复提交标签 并且 cloese
3 | name: Issue Mark Duplicate
4 |
5 | on:
6 | issue_comment:
7 | types: [created, edited]
8 |
9 | jobs:
10 | mark-duplicate:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: mark-duplicate
14 | uses: actions-cool/issues-helper@v3
15 | with:
16 | actions: "mark-duplicate"
17 | token: ${{ secrets.GITHUB_TOKEN }}
18 | duplicate-labels: "duplicate"
19 | close-issue: true
20 |
--------------------------------------------------------------------------------
/.github/workflows/issue-reply.temp.yml:
--------------------------------------------------------------------------------
1 | # force copy from tencent/tdesign
2 | # 当被打上 Need Reproduce 标签时候,自动提示需要重现实例
3 |
4 | name: ISSUE_REPLY
5 |
6 | on:
7 | issues:
8 | types: [labeled]
9 |
10 | jobs:
11 | issue-reply:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: Need Reproduce
15 | if: github.event.label.name == 'Need Reproduce'
16 | uses: actions-cool/issues-helper@v3
17 | with:
18 | actions: 'create-comment'
19 | issue-number: ${{ github.event.issue.number }}
20 | body: |
21 | 你好 @${{ github.event.issue.user.login }}, 我们需要你提供一个在线的重现实例以便于我们帮你排查问题。你可以通过点击 [此处](https://codesandbox.io/) 创建一个 codesandbox 或者提供一个最小化的 GitHub 仓库。请确保选择准确的版本。
22 |
--------------------------------------------------------------------------------
/.github/workflows/issue-synchronize.temp.yml:
--------------------------------------------------------------------------------
1 | # force copy from tencent/tdesign
2 | name: Issue Synchronize
3 |
4 | on:
5 | issues:
6 | types: [opened, reopened]
7 |
8 | jobs:
9 | synchronize:
10 | runs-on: ubuntu-latest
11 | steps:
12 | # https://docs.github.com/cn/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#issues
13 | - uses: TDesignOteam/create-report@main
14 | with:
15 | wxhook: ${{ secrets.WX_HOOK_URL }}
16 | token: ${{ secrets.GITHUB_TOKEN }}
17 | type: 'issue'
--------------------------------------------------------------------------------
/.github/workflows/issues-dailyclose-schedule.yml:
--------------------------------------------------------------------------------
1 | # 国际标准时间+8
2 | # 每天issue和pr的关闭情况
3 | name: issues-dailyclose-schedule
4 |
5 | on:
6 | workflow_dispatch:
7 | schedule:
8 | - cron: "0 2 * * *"
9 |
10 | jobs:
11 | create-report:
12 | # prevents this action from running on forks
13 | if: github.repository == 'Tencent/tdesign'
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v4
17 | - uses: TDesignOteam/create-report@main
18 | with:
19 | wxhook: ${{ secrets.WX_HOOK_URL }}
20 | token: ${{ secrets.GIT_TOKEN_L }}
21 | type: 'close'
22 |
--------------------------------------------------------------------------------
/.github/workflows/issues-dailynew-schedule.yml:
--------------------------------------------------------------------------------
1 | # 国际标准时间+8
2 | # 每天 issue 新增情况
3 | name: issues-dailyclose-schedule
4 |
5 | on:
6 | workflow_dispatch:
7 | schedule:
8 | - cron: "0 9 * * *"
9 |
10 | jobs:
11 | create-report:
12 | # prevents this action from running on forks
13 | if: github.repository == 'Tencent/tdesign'
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v4
17 | - uses: TDesignOteam/create-report@main
18 | with:
19 | wxhook: ${{ secrets.WX_HOOK_URL }}
20 | token: ${{ secrets.GIT_TOKEN_L }}
21 | type: 'new'
22 |
--------------------------------------------------------------------------------
/.github/workflows/issues-statistics-schedule.yml:
--------------------------------------------------------------------------------
1 | # 国际标准时间+8
2 | # 每天issue和pr的待处理情况
3 | name: issues-statistics-schedule
4 |
5 | on:
6 | workflow_dispatch:
7 | schedule:
8 | - cron: "0 6 * * *"
9 |
10 | jobs:
11 | create-report:
12 | # prevents this action from running on forks
13 | if: github.repository == 'Tencent/tdesign'
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v4
17 | - uses: TDesignOteam/create-report@main
18 | with:
19 | wxhook: ${{ secrets.WX_HOOK_URL }}
20 | token: ${{ secrets.GIT_TOKEN_L }}
21 | type: 'xiaolv'
22 |
--------------------------------------------------------------------------------
/.github/workflows/pr-spelling.template.yml:
--------------------------------------------------------------------------------
1 | # force copy from tencent/tdesign
2 | name: pr-spell-check
3 | on: [pull_request]
4 |
5 | jobs:
6 | run:
7 | name: Spell Check with Typos
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v4
11 | - name: Check spelling
12 | uses: crate-ci/typos@master
13 | with:
14 | config: .github/workflows/typos-config.toml
15 |
--------------------------------------------------------------------------------
/.github/workflows/pull-request.yml:
--------------------------------------------------------------------------------
1 | name: MAIN_PULL_REQUEST
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | types: [closed]
8 |
9 | jobs:
10 | modify-services:
11 | if: github.repository == 'Tencent/tdesign'
12 | runs-on: ubuntu-latest
13 | outputs:
14 | services-changed: ${{ steps.services-changed.outputs.changed }}
15 | steps:
16 | - uses: actions/checkout@v4
17 | with:
18 | fetch-depth: 100
19 | - uses: marceloprado/has-changed-path@v1
20 | id: services-changed
21 | with:
22 | paths: services
23 | - run: echo services changed=${{ steps.services-changed.outputs.changed }}
24 |
25 | upload-services:
26 | runs-on: ubuntu-latest
27 | needs: modify-services
28 | if: needs.modify-services.outputs.services-changed == 'true'
29 | steps:
30 | - uses: actions/checkout@v4
31 | - uses: actions/setup-node@v4
32 | with:
33 | node-version: 18
34 | - run: node ./services/update-components-notice.js
35 | - run: sleep 3s
36 | - run: |
37 | export DEPLOY_DOMAIN=https://tdesign-site-services.surge.sh
38 | npx surge --project ./services --domain $DEPLOY_DOMAIN --token ${{ secrets.TDESIGN_SURGE_TOKEN }}
39 | echo the preview URL is $DEPLOY_DOMAIN
40 | echo "::set-output name=url::$DEPLOY_DOMAIN"
41 |
--------------------------------------------------------------------------------
/.github/workflows/service-update-schedule.yml:
--------------------------------------------------------------------------------
1 | # 国际标准时间+8
2 | # 每周更新组件发布信息
3 | name: service-update-schedule
4 |
5 | on:
6 | workflow_dispatch:
7 | schedule:
8 | - cron: "0 0 * * 5"
9 |
10 | jobs:
11 | create-report:
12 | # prevents this action from running on forks
13 | if: github.repository == 'Tencent/tdesign'
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v4
17 | - uses: actions/setup-node@v4
18 | with:
19 | node-version: 18
20 | - run: node ./services/update-components-notice.js
21 | - run: sleep 3s
22 | - run: |
23 | export DEPLOY_DOMAIN=https://tdesign-site-services.surge.sh
24 | npx surge --project ./services --domain $DEPLOY_DOMAIN --token ${{ secrets.TDESIGN_SURGE_TOKEN }}
25 | ls services
26 | echo the preview URL is $DEPLOY_DOMAIN
27 | echo "::set-output name=url::$DEPLOY_DOMAIN"
28 |
--------------------------------------------------------------------------------
/.github/workflows/typos-config.toml:
--------------------------------------------------------------------------------
1 | [default.extend-words]
2 | hd = "hd"
3 | metalness="metalness"
4 |
5 | [files]
6 | extend-exclude = ["**/lib/**","**/spline/**","contributor.html","README.md","README_zh-CN.md","docsearch.min.js","*.svg","**/public/**","pnpm-lock.yaml"]
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## MacOS
2 | .DS_Store
3 |
4 | ## node_modules
5 | node_modules
6 |
7 | ## lock
8 | yarn.lock
9 | package-lock.json
10 |
11 | ## build
12 | _data
13 | _site
14 | dist
15 | results
16 | static_site
17 | lib
18 |
19 | ## test
20 | coverage
--------------------------------------------------------------------------------
/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx --no -- commitlint --edit "$1"
5 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx lint-staged && log_emails=$(git config user.email) && if [[ ${log_emails} =~ '@tencent.com' ]];then echo 本地提交邮箱 $log_emails 校验非法,需要本地更改重新提交 && exit 2;else echo 邮箱 $log_emails 校验通过;fi
5 |
--------------------------------------------------------------------------------
/.husky/prepare-commit-msg:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx czg --hook || true
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // 一行最多 120 字符
3 | printWidth: 120,
4 | // 使用 2 个空格缩进
5 | tabWidth: 2,
6 | // 不使用缩进符,而使用空格
7 | useTabs: false,
8 | // 行尾需要有分号
9 | semi: true,
10 | // 使用单引号
11 | singleQuote: true,
12 | // 对象的 key 仅在必要时用引号
13 | quoteProps: 'as-needed',
14 | // jsx 不使用单引号,而使用双引号
15 | jsxSingleQuote: false,
16 | // 末尾需要有逗号
17 | trailingComma: 'all',
18 | // 大括号内的首尾需要空格
19 | bracketSpacing: true,
20 | // 箭头函数,只有一个参数的时候,也需要括号
21 | arrowParens: 'always',
22 | // 每个文件格式化的范围是文件的全部内容
23 | rangeStart: 0,
24 | rangeEnd: Infinity,
25 | // 不需要写文件开头的 @prettier
26 | requirePragma: false,
27 | // 不需要自动在文件开头插入 @prettier
28 | insertPragma: false,
29 | // 使用默认的折行标准
30 | proseWrap: 'preserve',
31 | // 根据显示样式决定 html 要不要折行
32 | htmlWhitespaceSensitivity: 'css',
33 | // vue 文件中的 script 和 style 内不用缩进
34 | vueIndentScriptAndStyle: false,
35 | // 换行符使用 lf
36 | endOfLine: 'lf',
37 | };
38 |
--------------------------------------------------------------------------------
/.stylelintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ['stylelint-config-standard', 'stylelint-config-standard-less'],
3 | rules: {
4 | 'number-leading-zero': 'never',
5 | 'color-function-notation': 'legacy',
6 | 'alpha-value-notation': 'number',
7 | // TODO 后面统一改 class 小写 且 BEM,当前按警告提示
8 | 'selector-class-pattern': [
9 | '^[a-z]+([-]?[a-z0-9]+)*(__[a-z0-9]([-]?[a-z0-9]+)*)?(--[a-z0-9]([-]?[a-z0-9]+)*)?$',
10 | {
11 | resolveNestedSelectors: true,
12 | message: 'Expected class selector "%s" to be lowercase and BEM format',
13 | severity: 'warning',
14 | },
15 | ],
16 | 'media-feature-range-notation': 'prefix',
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "typescript.preferences.importModuleSpecifier": "relative",
3 | "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "vue"],
4 | "[html]": {
5 | "editor.formatOnSave": true,
6 | "editor.defaultFormatter": "esbenp.prettier-vscode"
7 | },
8 | "[typescriptreact]": {
9 | "editor.formatOnSave": true,
10 | "editor.defaultFormatter": "esbenp.prettier-vscode"
11 | },
12 | "[javascriptreact]": {
13 | "editor.formatOnSave": true,
14 | "editor.defaultFormatter": "esbenp.prettier-vscode"
15 | },
16 | "[typescript]": {
17 | "editor.formatOnSave": true,
18 | "editor.defaultFormatter": "esbenp.prettier-vscode"
19 | },
20 | "[javascript]": {
21 | "editor.formatOnSave": true,
22 | "editor.defaultFormatter": "esbenp.prettier-vscode"
23 | },
24 | "cSpell.words": ["tdesign","miniprogram"],
25 | "cSpell.ignorePaths": ["pnpm-lock.yaml", "node_modules", ".git", ".vscode"]
26 | }
27 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021-present TDesign
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/docs/contact.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Contact
3 | ---
4 |
5 | ### Contributing
6 |
7 | Please refer to[《How to contribute》](/about/contributing)。
8 |
9 | ### Community and Repositories
10 |
11 | We prefer to solve and discuss in the repository, as this allows more people with similar problems to participate. If you find a Bug or have a Feature Request, you can submit an Issue to the corresponding repository.
12 |
13 | - [TDesign for Vue 2](https://github.com/Tencent/tdesign-vue)
14 | - [TDesign for Vue 3](https://github.com/Tencent/tdesign-vue-next)
15 | - [TDesign for React](https://github.com/Tencent/tdesign-react)
16 | - [TDesign for WeChat Miniprogram](https://github.com/Tencent/tdesign-miniprogram)
17 | - [TDesign for Mobile Vue](https://github.com/Tencent/tdesign-mobile-vue)
18 | - [TDesign for Flutter](https://github.com/Tencent/tdesign-flutter)
19 |
20 | ### TDesign User Group in WeCom
21 |
22 | TDesign official team will promptly synchronize version releases and issue fixes in the user group, and there will be discussions about the component library's construction. You can scroll to the bottom of the website, choose and scan the QR code according to your technology stack, and join the user group.
23 |
24 | ### Contact by email
25 |
26 | [tdesign@tencent.com](mailto:tdesign@tencent.com)
27 |
--------------------------------------------------------------------------------
/docs/contact_zh-CN.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 联系我们
3 | ---
4 |
5 | ### 参与贡献
6 |
7 | 请参照[《如何贡献》](/about/contributing)文档。
8 |
9 | ### 社区交流
10 |
11 | 我们更推崇在仓库解决问题和交流问题,因为这样会让更多有相似问题的人看到问题并参与解决。如果你发现了一个 Bug 或者有 Feature Request,可以在 repo 上给对应技术栈实现的 repo 提一个 Issue
12 |
13 | - [TDesign for Vue 2](https://github.com/Tencent/tdesign-vue)
14 | - [TDesign for Vue 3](https://github.com/Tencent/tdesign-vue-next)
15 | - [TDesign for React](https://github.com/Tencent/tdesign-react)
16 | - [TDesign for WeChat Miniprogram](https://github.com/Tencent/tdesign-miniprogram)
17 | - [TDesign for Mobile Vue](https://github.com/Tencent/tdesign-mobile-vue)
18 | - [TDesign for Flutter](https://github.com/Tencent/tdesign-flutter)
19 |
20 | ### 企业微信群
21 |
22 | TDesign 团队会及时在企业微信大群中同步发布版本、问题修复信息,也会有一些关于组件库建设的讨论,欢迎微信或企业微信扫码入群交流。你可以滚动到页面底部,根据你的技术栈方向扫描具体的二维码加入用户群。如果你是腾讯内部的用户,将会统一进入内部用户大群。
23 |
24 | ### 邮件联系
25 |
26 | [tdesign@tencent.com](mailto:tdesign@tencent.com)
27 |
--------------------------------------------------------------------------------
/docs/design/index.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/docs/design/index.md
--------------------------------------------------------------------------------
/docs/faq_zh-CN.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 常见问题
3 | ---
4 |
5 | ### 何时发版
6 |
7 | 目前按照每周一次迭代的发版节奏进行,如果你有线上问题急需解决,请在 issue 中留言要求发布先行版本,先行版本不受迭代版本节奏要求,随时可以发布。
8 |
9 | ### 如何定制主题
10 |
11 | 参考 [自定义主题](https://github.com/Tencent/tdesign-common/blob/develop/theme.md),你可以自由修改全局和各组件抽离的样式变量,只有已有变量无法满足你的定制需求时才考虑通过同名类覆盖的方式重写默认样式,这可以降低你跟随组件库升级的难度。
12 |
13 | ### 受控与非受控用法
14 |
15 | 对于使用时可能需要更新的属性如 value(对应更新事件 onChange),组件都实现了受控和非受控用法,下面使用 value/onChange 代入说明:
16 |
17 | - 受控用法:传入属性 value 既代表受控用法,组件状态完全由属性值控制,无内部状态,如需更新状态,必须传入新的属性值,用户通过交互触发了更新事件 onChange,开发者需要更新 value 后传入组件,组件状态才会更新。
18 | - 非受控用法:既初始值用法,不传入 value 属性,使用对应的初始值属性 defaultValue 设置组件初始状态,此时组件会在内部维护该状态,用户通过交互触发更新事件 onChange 之后,组件内部直接更新组件状态。
19 |
20 | ### 如何在设计工具 Sketch 中使用 TDesign
21 | 有两种方式,一是可以使用 TDesign 提供的 Sketch 源文件,它包括桌面端及移动端(近期上线),也可以使用 TDesign 提供的 Sketch 插件,具体使用方式请参考 [《插件使用手册》](https://doc.weixin.qq.com/doc/w3_m_OkshgETGpoGB?scode=AJEAIQdfAAoYvGqGCUAL8AZgbdAFw)。
--------------------------------------------------------------------------------
/docs/roadmap_zh-CN.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 后续计划
3 | ---
4 |
5 | 通过开源,TDesign 期待持续打磨出更加完善易用的组件库,包括在国际化、无障碍和适老化方面有更成熟的解决方案,对更多的产品和使用者有帮助。
6 |
7 | 非常期待你对 TDesign 的持续关注和反馈意见。
8 | 更欢迎同道中人的你参与 TDesign 的开源共建,与 TDesign 从开源到更加成熟的旅程中一起进步。
9 |
10 | 接来下 TDesign 将按照如下规划,快速迭代完善:
11 |
12 | **我们正在做的**
13 |
14 | - 持续维护目前 1.0 LTS 版本的基础通用 UI 组件,并完善目前基础组件的功能 [TDesign LTS Version Maintain](https://github.com/orgs/Tencent/projects/1/views/35?sliceBy%5Bvalue%5D=Desktop)。
15 |
16 | - 持续迭代跨端组件库 TDesign Flutter,并迭代至 1.0 稳定版本。同时提供H5/小程序跨端的解决方案。
17 |
18 | - 提供一套 Web Components 标准的 TDesign UI 风格的基础组件,并在此基础上进行建设 AIGC 系列高阶组件的实现,降低维护成本。
19 |
20 | - 持续增加 TIcon 图标数量,并在目前基础上提供可变粗细、多色图标、多风格等更丰富的图标功能。
21 |
22 | - 调整目前的仓库结构,将各个技术栈分别进行大仓维护的调整,进行更多代码复用和同步优化,使得社区、贡献者发挥更大的价值,问题更加聚焦。
23 |
24 | **我们准备做的**
25 |
26 | 和腾讯内外的各个业务进行合作,提供更多周边建设,包括低代码平台、AI 编程辅助能力、D2C 和更丰富的页面模板等资源
27 |
28 | 以上工作都在 GitHub Projects 上公开进行。[view on GitHub](https://github.com/orgs/Tencent/projects/1)
29 |
--------------------------------------------------------------------------------
/packages/auto-release-collection/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['plugin:@typescript-eslint/recommended'],
4 | parser: '@typescript-eslint/parser',
5 | plugins: ['@typescript-eslint'],
6 | ignorePatterns: ['dist', 'node_modules'],
7 | rules: {},
8 | };
9 |
--------------------------------------------------------------------------------
/packages/auto-release-collection/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "auto-release-collection",
3 | "private": true,
4 | "description": "the project for TDesign weekly versions collection and auto release",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "prebuild": "rimraf dist/*",
8 | "dev": "tsx watch src/index.ts",
9 | "start": "tsx src/index.ts",
10 | "lint": "eslint --ext .ts src",
11 | "build": "tsc",
12 | "test": "echo \"Error: no test specified\" && exit 1"
13 | },
14 | "keywords": [],
15 | "author": "",
16 | "license": "ISC",
17 | "dependencies": {
18 | "@actions/github": "^6.0.0"
19 | },
20 | "devDependencies": {
21 | "@typescript-eslint/eslint-plugin": "^5.6.0",
22 | "@typescript-eslint/parser": "^5.6.0",
23 | "nodemon": "^3.1.7",
24 | "tsx": "^4.19.3",
25 | "typescript": "^4.9.5"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/packages/auto-release-collection/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6",
4 | "baseUrl": "./",
5 | "rootDir": "./src",
6 | "module": "commonjs",
7 | "strict": true,
8 | "noImplicitAny": false,
9 | "useUnknownInCatchVariables": false,
10 | "outDir": "./dist",
11 | "sourceMap": false,
12 | "esModuleInterop": true
13 | },
14 | "include": ["src"],
15 | }
16 |
--------------------------------------------------------------------------------
/packages/components/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [["@babel/preset-env", { "targets": { "node": "current" } }]]
3 | }
4 |
--------------------------------------------------------------------------------
/packages/components/.env:
--------------------------------------------------------------------------------
1 | VITE_SITE_NOTICE_URL = https://tdesign-site-services.surge.sh/notice.json
2 | VITE_SLIDER_NOTICE_URL = https://tdesign-site-services.surge.sh/components-notice.json
3 |
--------------------------------------------------------------------------------
/packages/components/.eslintrc.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | root: true,
5 | extends: ['./../../.eslintrc.js'],
6 | parserOptions: {
7 | sourceType: 'module',
8 | parser: '@babel/eslint-parser',
9 | babelOptions: {
10 | configFile: path.resolve(__dirname, './babelrc'),
11 | },
12 | ecmaVersion: 2020,
13 | },
14 | rules: {},
15 | };
16 |
--------------------------------------------------------------------------------
/packages/components/.gitignore:
--------------------------------------------------------------------------------
1 | lib/site.umd.js
2 | lib/site.es.js
3 | lib/style.css
4 | lib/favicon.icon
--------------------------------------------------------------------------------
/packages/components/README.md:
--------------------------------------------------------------------------------
1 | ## TDesign Site Web Component
2 |
3 | ### 🏗️ Develop
4 |
5 | ```bash
6 | # 安装
7 | npm install
8 |
9 | # 启动
10 | npm dev
11 | ```
12 |
13 | ### ⚙️ Build
14 |
15 | ```bash
16 | npm build
17 | ```
18 |
19 | ### 📦 Usage
20 |
21 | ```javascript
22 | // import tdesign-site-components es module and style
23 | import "tdesign-site-components";
24 | import "tdesign-site-components/lib/styles/style.css";
25 |
26 | // splice webcomponents into pages
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | Docs Content
39 |
40 |
41 |
42 |
43 |
44 | ;
45 | ```
46 |
--------------------------------------------------------------------------------
/packages/components/config/index.js:
--------------------------------------------------------------------------------
1 | // logo 设置
2 | export const logoMenuConfigCdn = 'https://cdc.cdn-go.cn/tdc/latest/menu.json';
3 | export const logoMenuConfigWoaCdn = 'https://cdc.cdn-go.cn/tdc/latest/menu.woa.json';
4 | export const logoMenuSvgPrefix = 'https://cdc.cdn-go.cn/tdc/latest/images';
5 |
--------------------------------------------------------------------------------
/packages/components/config/locale.js:
--------------------------------------------------------------------------------
1 | import { getLang } from '@utils'
2 |
3 | export const getLocale = () => {
4 | const lang = getLang();
5 | const locale = {
6 | zh: {
7 | footer: {
8 | copyright: '腾讯公司 版权所有',
9 | weComGroup: '企业微信群',
10 | weComGroupDesc: '欢迎微信扫码联系我们',
11 | },
12 | },
13 | en: {
14 | footer: {
15 | copyright: 'Tencent Copyright',
16 | weComGroup: 'WeCom Group',
17 | weComGroupDesc: 'Welcome to contact us',
18 | },
19 | }
20 | };
21 |
22 | return locale[lang];
23 | };
24 |
--------------------------------------------------------------------------------
/packages/components/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tdesign-site-components",
3 | "version": "0.15.11",
4 | "main": "lib/site.es.js",
5 | "scripts": {
6 | "dev": "vite",
7 | "watch": "vite build --watch",
8 | "build": "vite build --debug",
9 | "postbuild": "node ./script/compile-less.js",
10 | "test": "jest --coverage"
11 | },
12 | "publishConfig": {
13 | "registry": "https://registry.npmjs.org/"
14 | },
15 | "repository": {
16 | "type": "git",
17 | "url": "git+https://github.com/Tencent/tdesign.git"
18 | },
19 | "homepage": "https://github.com/Tencent/tdesign/blob/main/packages/components/README.md",
20 | "keywords": [
21 | "TDesign",
22 | "webcomponents"
23 | ],
24 | "files": [
25 | "lib"
26 | ],
27 | "devDependencies": {
28 | "@babel/core": "^7.16.7",
29 | "@babel/preset-env": "^7.16.7",
30 | "babel-jest": "^27.4.5",
31 | "fs-extra": "^10.0.0",
32 | "jest": "^27.4.3",
33 | "less": "^4.1.1",
34 | "vite": "^2.9.1"
35 | },
36 | "dependencies": {
37 | "@popperjs/core": "^2.11.5",
38 | "hybrids": "8.2.2",
39 | "nprogress": "^0.2.0",
40 | "prismjs": "^1.29.0",
41 | "qrcode": "^1.5.1",
42 | "tdesign-icons-svg": "0.0.1"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/packages/components/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/public/favicon.ico
--------------------------------------------------------------------------------
/packages/components/script/compile-less.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs-extra')
2 | const { execSync } = require('child_process');
3 |
4 | console.log('--- 正在同步 style ---')
5 | const command = 'lessc ./src/styles/main.less ./lib/styles/style.css';
6 | execSync(command, { cwd: process.cwd(), encoding: 'utf-8' });
7 |
8 | fs.copyFileSync('./src/styles/prism-theme.less', './lib/styles/prism-theme.less');
9 | fs.copyFileSync('./src/styles/prism-theme-dark.less', './lib/styles/prism-theme-dark.less');
10 | console.log('--- 同步 style 完成 ---')
11 |
12 | console.log('--- 正在同步 font ---')
13 | fs.copySync('./src/font', './lib/font');
14 | console.log('--- 同步 font 完成 ---')
15 |
16 | console.log('--- 正在同步 images ---')
17 | fs.copySync('./src/images', './lib/images');
18 | console.log('--- 同步 images 完成 ---')
19 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-aegis/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 |
3 | export default define({
4 | tag: 'td-aegis',
5 | aegisId: 'rDISNMyXgKnpdSRvul',
6 | stats: {
7 | get: (_host, lastValue) => lastValue || undefined,
8 | set: (_host, value) => value,
9 | connect: (host) => {
10 | function registerStats() {
11 | if (document.getElementById('__td_aegis__')) return;
12 |
13 | const script = document.createElement('script');
14 | script.async = true;
15 | script.id = '__td_aegis__';
16 | script.type = 'text/javascript';
17 | script.src = 'https://cdn-go.cn/aegis/aegis-sdk/latest/aegis.min.js';
18 | script.onload = () => {
19 | window.aegis = new Aegis({
20 | id: host.aegisId,
21 | reportAssetSpeed: true, // 静态资源测速
22 | reportApiSpeed: true, // 接口测速
23 | spa: true, // spa 页面需要开启,页面切换的时候上报pv
24 | });
25 | }
26 | document.body.appendChild(script);
27 | }
28 | window.addEventListener('DOMContentLoaded', registerStats)
29 |
30 | return () => {
31 | window.removeEventListener('DOMContentLoaded', registerStats)
32 | };
33 | },
34 | },
35 | render: () => html``,
36 | });
37 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-avatar/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from "hybrids";
2 | import style from "./style.less";
3 |
4 | export default define({
5 | tag: "td-avatar",
6 | content: "",
7 | username: "",
8 | src: "",
9 | href: "",
10 | render: ({ content, username, src, href }) => {
11 | const defaultSrc = `https://avatars.githubusercontent.com/${username}`;
12 | const defaultHref = `https://github.com/${username}`;
13 |
14 | return html`
15 |
16 |
17 |
18 |
19 |
20 | ${content || username}
21 |
22 |
23 | `.css`${style}`;
24 | },
25 | });
26 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-avatar/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-avatar {
2 | margin-right: 8px;
3 | display: inline-flex;
4 | align-items: center;
5 | justify-content: center;
6 |
7 | .avatar {
8 | width: 40px;
9 | height: 40px;
10 | display: inline-block;
11 |
12 | img {
13 | width: 40px;
14 | height: 40px;
15 | border-radius: 100%;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-backtop/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 | import backTopIcon from '@images/backtop.svg?raw';
4 |
5 | function handleBacktop() {
6 | window.scrollTo({ top: 0, behavior: 'smooth' });
7 | }
8 |
9 | export default define({
10 | tag: 'td-backtop',
11 | backtopShow: {
12 | get: (_host, lastValue) => lastValue || false,
13 | set: (_host, value) => value,
14 | connect: (host, key, invalidate) => {
15 | function toggleVisible() {
16 | const { scrollTop } = document.documentElement;
17 | if (scrollTop > 0) {
18 | Object.assign(host, { [key]: true });
19 | } else {
20 | Object.assign(host, { [key]: false });
21 | }
22 | invalidate();
23 | }
24 | document.addEventListener('scroll', toggleVisible);
25 |
26 | return () => document.removeEventListener('scroll', toggleVisible);
27 | },
28 | },
29 |
30 | render: ({ backtopShow }) => html`
31 |
34 | `.css`${style}`,
35 | });
36 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-backtop/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 | position: fixed;
3 | right: 24px;
4 | bottom: 80px;
5 | z-index: 300;
6 |
7 | .TDesign-backtop {
8 | width: 48px;
9 | height: 48px;
10 | display: flex;
11 | justify-content: center;
12 | align-items: center;
13 | border-radius: 6px;
14 | box-sizing: border-box;
15 | backdrop-filter: blur(10px);
16 | background-color: var(--component-border);
17 |
18 | cursor: pointer;
19 | transition: all .2s ease;
20 | opacity: 0;
21 | visibility: hidden;
22 | color: var(--text-secondary);
23 |
24 | &.show {
25 | opacity: 1;
26 | visibility: visible;
27 | }
28 |
29 | &:hover {
30 | color: var(--text-primary);
31 | .TDesign-backtop__inner {
32 | transform: scale(0.95);
33 | }
34 | }
35 |
36 | &__inner {
37 | width: calc(100% - 2px);
38 | height: calc(100% - 2px);
39 | border-radius: 5px;
40 | display: flex;
41 | justify-content: center;
42 | align-items: center;
43 | background-color: var(--bg-color-container-transparent);
44 | box-sizing: border-box;
45 | transition: all .2s ease;
46 |
47 | svg {
48 | width: 20px;
49 | height: 20px;
50 | }
51 | }
52 | }
53 | }
54 |
55 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-code/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 |
4 | export default define({
5 | tag: 'td-code',
6 | text: '',
7 | render: ({ text }) => html`
8 | ${text}
9 | `.css`${style}`,
10 | });
11 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-code/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 | display: inline;
3 | line-height: calc(100% + 8px);
4 | font-size: 12px;
5 | margin: 0 2px;
6 | padding: 2px 6px;
7 | border-radius: 3px;
8 | color: var(--error-8);
9 | background: var(--error-1);
10 | }
11 |
12 | .TDesign-code {
13 | font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-contributors/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-contributors {
2 |
3 | .title {
4 | font-weight: bold;
5 | font-size: 20px;
6 | line-height: 28px;
7 | margin: 48px 0 16px;
8 | }
9 |
10 | &__content {
11 | display: flex;
12 | flex-wrap: wrap;
13 |
14 | td-tooltip {
15 | margin-right: 8px;
16 | }
17 |
18 | img {
19 | width: 40px;
20 | height: 40px;
21 | border-radius: 100%;
22 | }
23 |
24 | .avatar {
25 | width: 40px;
26 | height: 40px;
27 | display: inline-block;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-badge/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 |
4 | function getColor(message) {
5 | const percentage = message && parseFloat(message);
6 | if (percentage >= 90) {
7 | return 'brightgreen';
8 | } if (percentage >= 70) {
9 | return 'yellow';
10 | }
11 | return 'red';
12 | }
13 |
14 | export default define({
15 | tag: 'td-doc-badge',
16 | label: 'coverage',
17 | message: '0%',
18 | color: '',
19 | render: (host) => {
20 | const { label, message, color: defaultColor } = host;
21 | let color = defaultColor;
22 |
23 | if (!color) color = getColor(message);
24 |
25 | const badgeUrl = encodeURI(`https://img.shields.io/badge/${label}-${message}-${color}`);
26 |
27 | return html`
28 |
29 | `.css`${style}`;
30 | },
31 | });
32 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-badge/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-doc-badge {
2 | position: relative;
3 | z-index: 500;
4 | }
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-copy/index.js:
--------------------------------------------------------------------------------
1 | import { html, dispatch, define } from 'hybrids';
2 | import style from './style.less';
3 | import copyIcon from '@images/copy.svg?raw';
4 |
5 | function handleCopy(host) {
6 | if ('clipboard' in navigator) {
7 | navigator.clipboard.writeText(host.code)
8 | .then(() => {
9 | Object.assign(host, { showTip: true });
10 | setTimeout(() => Object.assign(host, { showTip: false }), 800);
11 | dispatch(host, 'copy', { detail: host.code });
12 | });
13 | return;
14 | }
15 |
16 | const textarea = document.createElement('textarea');
17 | textarea.textContent = host.code;
18 | textarea.style.width = 0;
19 | textarea.style.height = 0;
20 | document.body.appendChild(textarea);
21 |
22 | const selection = document.getSelection();
23 | const range = document.createRange();
24 | range.selectNode(textarea);
25 | selection.removeAllRanges();
26 | selection.addRange(range);
27 |
28 | document.execCommand('copy');
29 | selection.removeAllRanges();
30 | document.body.removeChild(textarea);
31 |
32 | dispatch(host, 'copy', { detail: host.code });
33 | }
34 |
35 | export default define({
36 | tag: 'td-doc-copy',
37 | code: '',
38 | render: () => html`
39 |
40 |
41 | 已复制
42 |
43 | `.css`${style}`,
44 | });
45 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-empty/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 |
4 | function renderEmpty(type) {
5 | if (type === 'design') {
6 | return html`
7 |
8 |

9 |

10 |
11 | `;
12 | }
13 | }
14 |
15 | export default define({
16 | tag: 'td-doc-empty',
17 | type: 'design',
18 | render: (host) => {
19 | const { type } = host;
20 |
21 | return html`
22 |
23 | ${renderEmpty(type)}
24 |
25 | `.css`${style}`;
26 | },
27 | });
28 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-empty/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-doc-empty {
2 |
3 | .light {
4 | display: var(--theme-block-light-display);
5 | }
6 | .dark {
7 | display: var(--theme-block-dark-display);
8 | }
9 |
10 | &__design {
11 | display: flex;
12 | justify-content: center;
13 | align-items: center;
14 | padding: 48px;
15 | border: 1px solid var(--component-border);
16 | border-radius: 6px;
17 |
18 | img {
19 | width: 50%;
20 | height: auto;
21 | min-width: 240px;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-footer/portal.less:
--------------------------------------------------------------------------------
1 | /* stylelint-disable */
2 | .TDesign-doc__qrcode-inner {
3 | padding: 12px;
4 | box-sizing: border-box;
5 | background-color: #fff;
6 | border-radius: 6px;
7 | }
8 |
9 | .TDesign-doc__qrcode-popup::after {
10 | position: absolute;
11 | content: '';
12 | width: 16px;
13 | height: 16px;
14 | transform: rotate(45deg);
15 | transform: rotate(45deg);
16 | background: #fff;
17 | border-bottom: 1px solid #fff;
18 | border-right: 1px solid #fff;
19 | top: 64px;
20 | right: -4px;
21 | }
22 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-header/td-doc-issue/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 |
3 | position: absolute;
4 | right: 24px;
5 | top: calc(100% - 48px - 12px);
6 | z-index: 500;
7 |
8 | @media screen and (max-width: 750px) {
9 | --issue-display: none;
10 | }
11 | }
12 |
13 | .TDesign-component-issue {
14 | display: var(--issue-display, flex);
15 | padding: 4px;
16 | height: 32px;
17 | background: var(--bg-color-component-transparent);
18 | backdrop-filter: blur(10px);
19 | border-radius: 6px;
20 | color: var(--text-primary);
21 | align-items: center;
22 | box-shadow: var(--popup-box-shadow);
23 |
24 | .item {
25 | border-radius: var(--border-radius);
26 | transition: all .2s;
27 | display: flex;
28 | align-items: center;
29 | padding: 5px 8px;
30 | line-height: 22px;
31 | color: var(--text-primary);
32 | cursor: pointer;
33 | text-decoration: none;
34 |
35 | &:hover {
36 | background: var(--bg-color-component-hover);
37 | }
38 | }
39 |
40 | i {
41 | width: 16px;
42 | height: 16px;
43 | margin-right: 8px;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-history/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 | import historyIcon from '@images/history.svg?raw';
4 |
5 | function transformTime(time) {
6 | let text = time;
7 | if (/^\d+$/.test(time)) {
8 | text = new Date(parseFloat(time)).toLocaleString('en-US');
9 | }
10 |
11 | return text;
12 | }
13 |
14 | export default define({
15 | tag: 'td-doc-history',
16 | time: '',
17 | content: '',
18 | render: ({ time, content }) => {
19 | return html`
20 |
21 |
22 | ${content ? content : html`
23 | Last Update:
24 | ${transformTime(time)}
25 | `}
26 |
27 | `.css`${style}`
28 | },
29 | });
30 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-history/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 | font-size: 14px;
3 | line-height: 24px;
4 | }
5 |
6 | .TDesign-doc-history {
7 | padding: 7px 12px;
8 | border-radius: 6px;
9 | display: inline-flex;
10 | align-items: center;
11 | justify-content: center;
12 | color: var(--text-primary);
13 | background-color: var(--bg-color-code);
14 | border: 1px solid var(--component-border);
15 |
16 | .icon {
17 | margin-right: 8px;
18 | display: inline-flex;
19 |
20 | svg {
21 | color: var(--text-placeholder);
22 | }
23 | }
24 |
25 | .text {
26 | margin-right: 4px;
27 | color: var(--text-secondary);
28 | }
29 | }
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-layout/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import NProgress from 'nprogress';
3 | import style from './style.less';
4 |
5 | export default define({
6 | tag: 'td-doc-layout',
7 | loaded: {
8 | get: (_host, lastValue) => lastValue || false,
9 | set: (_host, value) => value,
10 | connect: (host, key) => {
11 | function onLoad() {
12 | Object.assign(host, { [key]: true });
13 | NProgress.done();
14 | }
15 |
16 | setTimeout(() => NProgress.done(), 3500);
17 |
18 | window.NProgress = NProgress;
19 | window.addEventListener('load', onLoad);
20 | !host.loaded && NProgress.start();
21 |
22 | return () => window.removeEventListener('load', onLoad);
23 | },
24 | },
25 | direction: 'row', // row column
26 | render: ({ direction }) => html`
27 |
33 | `.css`${style}`,
34 | });
35 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-layout/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 | --content-margin-left: var(--aside-width);
3 |
4 | @media screen and (max-width: 1200px) {
5 | --content-margin-left: 0;
6 | }
7 | }
8 |
9 | .TDesign-page-doc {
10 | min-height: 100vh;
11 | max-width: 100vw;
12 | overflow-x: hidden;
13 |
14 | .TDesign-body {
15 | min-height: 100vh;
16 | transition: all .2s var(--anim-time-fn-easing);
17 |
18 | &.row {
19 | margin-left: var(--content-margin-left);
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-popup/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-doc-popup {
2 | flex-shrink: 0;
3 | box-sizing: border-box;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-doc-search/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-doc-search {
2 | position: relative;
3 | width: 200px;
4 | height: 32px;
5 | box-sizing: border-box;
6 | display: inline-flex;
7 | align-items: center;
8 |
9 | &__icon {
10 | position: absolute;
11 | right: 8px;
12 | top: 50%;
13 | width: 20px;
14 | height: 20px;
15 | margin-top: -10px;
16 | color: var(--text-secondary);
17 | }
18 |
19 | &__inner {
20 | width: 100%;
21 | height: 100%;
22 | padding: 4px 36px 4px 8px;
23 | box-sizing: border-box;
24 | color: var(--text-secondary);
25 | border-radius: var(--border-radius);
26 | line-height: 22px;
27 | font-size: 14px;
28 | border: 1px solid var(--component-border);
29 | transition: all .2s linear;
30 | outline: none;
31 | background: transparent;
32 |
33 | &::placeholder {
34 | line-height: 22px;
35 | }
36 |
37 | &:hover {
38 | border-color: var(--brand-main);
39 | }
40 |
41 | &:focus {
42 | border-color: var(--brand-main);
43 | box-shadow: 0 0 0 2px var(--brand-main-focus);
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/packages/components/src/components/td-header/td-collapse-menu/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-collapse-menu {
2 | position: relative;
3 | display: flex;
4 | align-items: center;
5 | height: var(--header-height);
6 |
7 | .collapse-icon {
8 | width: 24px;
9 | height: 24px;
10 | cursor: pointer;
11 |
12 | svg {
13 | color: var(--text-primary);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-logo/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-header-logo {
2 | height: 32px;
3 | display: inline-flex;
4 | align-items: center;
5 |
6 | .home {
7 | color: var(--text-primary);
8 | text-decoration: none;
9 |
10 | svg {
11 | display: block;
12 | height: 32px;
13 | }
14 | }
15 |
16 | .divider {
17 | width: 1px;
18 | height: 16px;
19 | background: var(--component-stroke);
20 | margin: 0 16px;
21 | }
22 |
23 | &__menu {
24 | height: 32px;
25 | cursor: pointer;
26 |
27 | svg {
28 | border-radius: var(--border-radius);
29 | padding: 4px;
30 | width: 32px;
31 | height: 32px;
32 | box-sizing: border-box;
33 | transition: all 0.2s linear;
34 | color: var(--text-secondary);
35 |
36 | &:hover {
37 | background-color: var(--bg-color-container-hover);
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-message/README.md:
--------------------------------------------------------------------------------
1 | ### Usage
2 |
3 | ```js
4 | // 挂载节点
5 | window.showTdMessage({ content: "复制成功", theme: "success" });
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-message/style.less:
--------------------------------------------------------------------------------
1 | .TDesign-message {
2 | .t-message {
3 | width: fit-content;
4 | font-size: 14px;
5 | outline: 0;
6 | border-radius: 3px;
7 | background-color: var(--bg-color-container);
8 | box-shadow: var(--shadow-3), var(--shadow-inset-top),
9 | var(--shadow-inset-right), var(--shadow-inset-bottom),
10 | var(--shadow-inset-left);
11 | box-sizing: border-box;
12 | align-items: center;
13 | color: var(--text-primary);
14 | line-height: 22px;
15 | padding: 13px 16px;
16 | position: fixed;
17 | top: 0;
18 | left: 50%;
19 | display: flex;
20 | transform: translateX(-50%);
21 | transition: top 0.2s;
22 |
23 | &.t-message-enter {
24 | top: 32px;
25 | }
26 | &.t-message-leave {
27 | top: -100px;
28 | }
29 | }
30 | .t-message > .t-icon {
31 | color: var(--brand-main);
32 | margin-right: 8px;
33 | font-size: 16px;
34 | }
35 | .t-message.t-is-success > .t-icon {
36 | color: var(--success-main);
37 | }
38 | .t-message.t-is-warning > .t-icon {
39 | color: var(--warning-main);
40 | }
41 | .t-message.t-is-error > .t-icon {
42 | color: var(--error-main);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-portal/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 |
4 | export default define({
5 | tag: 'td-portal',
6 | visible: false,
7 | portalStyle: '',
8 | render: (host) => {
9 | return html`
10 | ${host.portalStyle ? html`` : ''}
11 |
12 | `.css`${style}`
13 | },
14 | });
15 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-portal/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 | --portal-border-radius: 9px;
3 | --portal-filter: blur(6px);
4 | --portal-background: var(--bg-color-container-transparent);
5 |
6 | position: absolute;
7 | z-index: 3000;
8 | opacity: 0;
9 | visibility: hidden;
10 | transition: clip-path 0.25s var(--anim-time-fn-easing), opacity 0.25s linear, visibility 0.25s linear;
11 | clip-path: polygon(-10% -10%, 110% -10%, 110% -10%, -10% -10%);
12 | }
13 |
14 | :host([visible]) {
15 | opacity: 1;
16 | visibility: visible;
17 | clip-path: polygon(-10% -10%, 110% 0%, 110% 110%, -10% 110%);
18 | }
19 |
20 | .TDesign-portal {
21 | padding: var(--portal-padding, 2px);
22 | box-shadow: var(--portal-box-shadow);
23 | border-radius: var(--portal-border-radius);
24 | background-color: var(--portal-background);
25 | backdrop-filter: var(--portal-filter);
26 | -webkit-backdrop-filter: var(--portal-filter);
27 | box-sizing: border-box;
28 | display: block;
29 | }
30 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-select/portal.less:
--------------------------------------------------------------------------------
1 | .td-select-portal {
2 | --portal-padding: 0;
3 | --portal-filter: none;
4 | --portal-border-radius: 3px;
5 | --portal-box-shadow: none;
6 | --portal-background: var(--bg-color-container);
7 | }
8 |
9 | .TDesign-select-dropdown {
10 | width: var(--input-width, 100%);
11 | max-height: 300px;
12 | box-shadow: var(--shadow-1);
13 | border-radius: 3px;
14 | box-sizing: border-box;
15 | padding: 6px;
16 | overflow: auto;
17 |
18 | &::-webkit-scrollbar {
19 | width: 12px;
20 | background: transparent;
21 | }
22 |
23 | &::-webkit-scrollbar-thumb {
24 | border-radius: 6px;
25 | border: 4px solid transparent;
26 | background-clip: content-box;
27 | background-color: var(--bg-color-scroll);
28 | }
29 | }
30 |
31 | .TDesign-select-list {
32 | margin: 0;
33 | padding: 0;
34 | list-style: none;
35 | display: flex;
36 | flex-direction: column;
37 | gap: 4px;
38 |
39 | &__item {
40 | list-style: none;
41 | cursor: pointer;
42 | margin: 0;
43 | padding: 4px 8px;
44 | height: 28px;
45 | line-height: 20px;
46 | box-sizing: border-box;
47 | border-radius: 3px;
48 | transition: all 0.2s var(--anim-time-fn-easing);
49 |
50 | &:hover {
51 | background: var(--bg-color-container-hover);
52 | }
53 |
54 | &.is-active {
55 | color: var(--brand-main);
56 | background-color: var(--brand-main-light);
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-switch/index.js:
--------------------------------------------------------------------------------
1 | import { html, define, dispatch } from "hybrids";
2 | import style from "./style.less";
3 |
4 | function handleChange(host) {
5 | host.value = !host.value;
6 | dispatch(host, "change", { detail: { value: host.value } });
7 | }
8 |
9 | export default define({
10 | tag: "td-switch",
11 | value: false,
12 | size: "medium",
13 | render: (host) => {
14 | const { value, size } = host;
15 |
16 | const switchClass = {
17 | 'TDesign-switch': true,
18 | 'is-checked': value,
19 | [`size-${size}`]: size
20 | };
21 |
22 | return html`
23 |
30 | `.css`${style}`;
31 | },
32 | });
33 |
--------------------------------------------------------------------------------
/packages/components/src/components/td-theme-tabs/style.less:
--------------------------------------------------------------------------------
1 | :host {
2 | flex-shrink: 0;
3 | }
4 |
5 | .TDesign-theme-tabs {
6 | min-width: 60px;
7 | width: 100%;
8 | height: 32px;
9 | padding: 2px;
10 | box-sizing: border-box;
11 | border-radius: var(--border-radius);
12 | background: var(--bg-color-component);
13 | position: relative;
14 | display: flex;
15 | justify-content: space-between;
16 |
17 | &__block {
18 | background-color: var(--bg-color-tab-select);
19 | box-shadow: 0 2px 4px rgba(0, 0, 0, .15);
20 | position: absolute;
21 | height: calc(100% - 4px);
22 | transition: all var(--anim-time-fn-easing) var(--anim-duration-moderate);
23 | border-radius: var(--border-radius);
24 | }
25 |
26 | .item {
27 | width: 50%;
28 | height: 28px;
29 | padding: 4px;
30 | display: inline-flex;
31 | justify-content: center;
32 | align-items: center;
33 | box-sizing: border-box;
34 | color: var(--text-disabled);
35 | position: relative;
36 | cursor: pointer;
37 |
38 | svg {
39 | width: 16px;
40 | height: 16px;
41 | pointer-events: none;
42 | transition: all .2s linear;
43 | }
44 |
45 | &:hover:not(.active) {
46 | color: var(--text-secondary);
47 | }
48 |
49 | &.active.sun {
50 | color: #ffbd2e;
51 | }
52 |
53 | &.active.moon {
54 | color: #fff;
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/packages/components/src/components/td-tooltip/index.js:
--------------------------------------------------------------------------------
1 | import { html, define } from 'hybrids';
2 | import style from './style.less';
3 |
4 | function handleClick(host) {
5 | if (host.triggerType !== 'click') return;
6 |
7 | Object.assign(host, { showTip: true });
8 | setTimeout(() => Object.assign(host, { showTip: false }), host.duration);
9 | }
10 |
11 | function handleEnter(host) {
12 | if (host.triggerType !== 'hover') return;
13 |
14 | Object.assign(host, { showTip: true });
15 | }
16 |
17 | function handleLeave(host) {
18 | if (host.triggerType !== 'hover') return;
19 |
20 | Object.assign(host, { showTip: false });
21 | }
22 |
23 | export default define({
24 | tag: 'td-tooltip',
25 | placement: 'top',
26 | showTip: false,
27 | duration: 1800,
28 | triggerType: 'click',
29 | render: (host) => {
30 | const { showTip, placement } = host;
31 |
32 | return html`
33 |
41 | `.css`${style}`;
42 | },
43 | });
44 |
--------------------------------------------------------------------------------
/packages/components/src/font/TCloudNumber.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/font/TCloudNumber.ttf
--------------------------------------------------------------------------------
/packages/components/src/font/tencent-w7.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/font/tencent-w7.ttf
--------------------------------------------------------------------------------
/packages/components/src/images/add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/angular-logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/packages/components/src/images/backtop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/bulletpoint.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/check.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/chevron-right.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/code.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/packages/components/src/images/copy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/fake-arrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/flutter-logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/groups/design-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/groups/design-group.png
--------------------------------------------------------------------------------
/packages/components/src/images/groups/flutter-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/groups/flutter-group.png
--------------------------------------------------------------------------------
/packages/components/src/images/groups/flutter-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/groups/react-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/groups/react-group.png
--------------------------------------------------------------------------------
/packages/components/src/images/groups/vue-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/groups/vue2-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/groups/vue2-group.png
--------------------------------------------------------------------------------
/packages/components/src/images/groups/vue3-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/groups/vue3-group.png
--------------------------------------------------------------------------------
/packages/components/src/images/groups/wx-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/groups/wx-group.png
--------------------------------------------------------------------------------
/packages/components/src/images/history.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/info.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/packages/components/src/images/jump.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/link.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/packages/components/src/images/menu-fold.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/packages/components/src/images/menu-unfold.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/mobile.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/components/src/images/moon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/more.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/qq-logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/search.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/taro-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/components/src/images/taro-logo.png
--------------------------------------------------------------------------------
/packages/components/src/images/tips.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/packages/components/src/images/translate.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/components/src/images/vue-logo.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/packages/components/src/images/wenjuan-logo.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/packages/components/src/styles/animation.less:
--------------------------------------------------------------------------------
1 | // light-dark-8deg-animation
2 | @keyframes light-to-dark {
3 | from {
4 | clip-path: polygon(0 0,
5 | 0 0,
6 | calc(tan(8deg) * -100vh) 100%,
7 | calc(tan(8deg) * -100vh) 100%);
8 | }
9 |
10 | to {
11 | clip-path: polygon(0 0,
12 | calc((tan(8deg) * 100vh) + 100%) 0,
13 | 100% 100%,
14 | calc(tan(8deg) * -100vh) 100%);
15 | }
16 | }
17 |
18 | @keyframes dark-to-light {
19 | from {
20 | clip-path: polygon(calc((tan(8deg) * 100vh) + 100%) 0,
21 | calc((tan(8deg) * 100vh) + 100%) 0,
22 | 100% 100%,
23 | 100% 100%);
24 | }
25 |
26 | to {
27 | clip-path: polygon(0 0,
28 | calc((tan(8deg) * 100vh) + 100%) 0,
29 | 100% 100%,
30 | calc(tan(8deg) * -100vh) 100%);
31 | }
32 | }
33 |
34 | :root::view-transition-group(root) {
35 | animation-duration: 1s;
36 | }
37 |
38 | :root::view-transition-new(root),
39 | :root::view-transition-old(root) {
40 | mix-blend-mode: normal;
41 | }
42 |
43 | :root::view-transition-old(root),
44 | :root[theme-mode='dark']::view-transition-old(root) {
45 | animation: none;
46 | }
47 |
48 | :root::view-transition-new(root) {
49 | animation-name: dark-to-light;
50 | }
51 |
52 | :root[theme-mode='dark']::view-transition-new(root) {
53 | animation-name: light-to-dark;
54 | }
--------------------------------------------------------------------------------
/packages/components/src/styles/main.less:
--------------------------------------------------------------------------------
1 | @import "./vars.less";
2 | @import "./dark.less";
3 | @import "./reset";
4 | @import "./nprogress.less";
5 | @import "./docs.less";
6 | @import "./timeline.less";
7 | @import "./animation.less";
--------------------------------------------------------------------------------
/packages/components/src/styles/reset.less:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | margin: 0;
4 | padding: 0;
5 | color: var(--text-secondary);
6 | font-family: BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
7 | font-size: 14px;
8 | -webkit-font-smoothing: antialiased;
9 | -moz-osx-font-smoothing: grayscale;
10 |
11 | &::-webkit-scrollbar-corner {
12 | width: 0;
13 | }
14 |
15 | &::-webkit-scrollbar {
16 | width: 16px;
17 | height: 16px;
18 | background: transparent;
19 | }
20 |
21 | &::-webkit-scrollbar-track {
22 | background: var(--bg-color-page);
23 | }
24 |
25 | &::-webkit-scrollbar-thumb {
26 | border-radius: 8px;
27 | border: 4px solid transparent;
28 | background-clip: content-box;
29 | background-color: var(--bg-color-scroll);
30 | }
31 | }
32 |
33 | ul,
34 | dl,
35 | ol {
36 | margin: 0;
37 | padding: 0;
38 | padding-left: 1.2em;
39 | line-height: 22px;
40 | }
41 |
42 | h1,
43 | h2,
44 | h3,
45 | h4,
46 | h5,
47 | h6,
48 | p {
49 | margin: 0;
50 | }
51 |
52 | @font-face {
53 | font-family: TencentSansW7;
54 | src: url("../font/tencent-w7.ttf");
55 | font-weight: normal;
56 | font-style: normal;
57 | font-display: swap;
58 | }
59 |
60 | @font-face {
61 | font-family: TCloudNumber;
62 | src: url("../font/TCloudNumber.ttf");
63 | font-weight: normal;
64 | font-style: normal;
65 | font-display: swap;
66 | }
--------------------------------------------------------------------------------
/packages/components/src/styles/timeline.less:
--------------------------------------------------------------------------------
1 | div[name="DOC"].timeline {
2 | padding-left: 32px;
3 | position: relative;
4 | overflow: hidden;
5 |
6 | &::after {
7 | content: '';
8 | position: absolute;
9 | top: 24px;
10 | left: 3px;
11 | width: 2px;
12 | height: 100%;
13 | background: var(--brand-main);
14 | }
15 |
16 | h2 {
17 | position: relative;
18 |
19 | td-code,
20 | code {
21 | padding: 2px 12px;
22 | border-radius: 3px;
23 | background: var(--bg-color-tag);
24 | margin-left: 24px;
25 | color: var(--text-primary);
26 | font-size: 20px;
27 | }
28 |
29 | &::before {
30 | content: '';
31 | position: absolute;
32 | left: -32px;
33 | width: 8px;
34 | height: 8px;
35 | border: 2px solid var(--brand-main);
36 | background: var(--bg-color-docpage);
37 | outline: 8px solid var(--bg-color-docpage);
38 | box-sizing: border-box;
39 | border-radius: 50%;
40 | z-index: 10;
41 | }
42 |
43 | &:last-of-type {
44 | &::after {
45 | content: '';
46 | position: absolute;
47 | top: 30px;
48 | left: -32px;
49 | z-index: 10;
50 | width: 8px;
51 | height: 9999px;
52 | background: var(--bg-color-docpage);
53 | }
54 | }
55 | }
56 |
57 | h3 {
58 | font-size: 20px;
59 | line-height: 28px;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/packages/components/src/utils/locale.js:
--------------------------------------------------------------------------------
1 | import { getLang } from '../utils';
2 |
3 | const callbacks = [];
4 |
5 | function defaultChangeCallBack() {
6 | const lang = getLang();
7 | if (lang === 'en') {
8 | const zhPathname = location.pathname.slice(0, -3);
9 | location.pathname = zhPathname;
10 | } else {
11 | if (location.pathname === '/') {
12 | location.pathname = 'index-en';
13 | } else {
14 | location.pathname = `${location.pathname}-en`;
15 | }
16 | }
17 | }
18 |
19 | function registerLocaleChange(cb = defaultChangeCallBack) {
20 | if (callbacks.includes(cb)) return;
21 | callbacks.push(cb);
22 | document.addEventListener('tdesign_site_lang', cb);
23 | }
24 |
25 | function jumpLocation(url) {
26 | const lang = getLang();
27 | return lang === 'en' ? `${url}-en` : url;
28 | }
29 |
30 | export {
31 | getLang,
32 | registerLocaleChange,
33 | jumpLocation,
34 | };
--------------------------------------------------------------------------------
/packages/components/test/index.test.js:
--------------------------------------------------------------------------------
1 | import { debounce } from '../src/utils';
2 |
3 | describe('test', () => {
4 | it('test running success', () => {
5 | expect(debounce).toBeTruthy();
6 | });
7 | });
--------------------------------------------------------------------------------
/packages/components/vite.config.js:
--------------------------------------------------------------------------------
1 | import path from 'path';
2 |
3 | export default {
4 | resolve: {
5 | alias: {
6 | '@': path.resolve(__dirname, './'),
7 | '@config': path.resolve(__dirname, './config'),
8 | '@utils': path.resolve(__dirname, './src/utils'),
9 | '@images': path.resolve(__dirname, './src/images'),
10 | '@components': path.resolve(__dirname, './src/components'),
11 | },
12 | },
13 |
14 | server: {
15 | host: '0.0.0.0',
16 | port: 3000,
17 | open: '/',
18 | https: false,
19 | },
20 |
21 | build: {
22 | outDir: 'lib',
23 | lib: {
24 | name: 'td-site',
25 | entry: './src/main.js',
26 | fileName: 'site',
27 | formats: ['es', 'umd'],
28 | },
29 | },
30 | };
31 |
--------------------------------------------------------------------------------
/packages/theme-generator/.eslintrc.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | root: true,
5 | extends: ['plugin:vue/essential', './../../.eslintrc.js'],
6 | parserOptions: {
7 | parser: '@babel/eslint-parser',
8 | babelOptions: {
9 | configFile: path.resolve(__dirname, './babel.config.js'),
10 | },
11 | },
12 | rules: {},
13 | };
14 |
--------------------------------------------------------------------------------
/packages/theme-generator/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | yarn.lock
3 |
4 | .DS_Store
5 | dist
--------------------------------------------------------------------------------
/packages/theme-generator/README-zh_CN.md:
--------------------------------------------------------------------------------
1 | # tdesign-theme-generator
2 |
3 | - TDesign 主题配置生成器挂件 支持任意框架使用。
4 |
5 | ## 🏗️ Develop
6 |
7 | - `npm run dev`
8 |
9 | - `npm run build:watch` 配合 npm link 进入站点热更新预览
10 |
11 | - `npm run build` 构建 web component
12 |
13 | ## 📦 Usage
14 |
15 | 1. `npm i tdesign-theme-generator`
16 |
17 | 2. `import 'tdesign-theme-generator';`
18 |
19 | 3. 在应用的代码中加入 ``
20 |
21 | - 对于移动端和小程序端,需要添加 device 参数,`mobile` 或 `mini-program`,例如 ``
22 |
23 | - 如果遇到参数无法正常传递的情况,可以尝试以下类似方式引入组件:
24 |
25 | ```js
26 | const generator = document.createElement('td-theme-generator');
27 | generator.setAttribute('device', 'mobile');
28 | document.body.appendChild(generator);
29 | ```
30 |
--------------------------------------------------------------------------------
/packages/theme-generator/README.md:
--------------------------------------------------------------------------------
1 | ## TDesign Theme Generator Plugin
2 |
3 | - TDesign theme generator plugin, which is available in any web application.
4 |
5 | ### 🏗️ Develop
6 |
7 | - `npm run dev`
8 |
9 | - `npm run build:watch` execute `npm link` as well to preview in application project
10 |
11 | ### ⚙️ Build
12 |
13 | - `npm run build` build web-component
14 |
15 | ### 📦 Usage
16 |
17 | 1. `npm i tdesign-theme-generator`
18 |
19 | 2. `import 'tdesign-theme-generator'`;
20 |
21 | 3. add `` in the application code
22 |
23 | - For mobile and mini-program platforms, you need to add the `device` parameter, such as ``.
24 |
25 | - If you encounter issues where parameters cannot be passed correctly, you can try the following method to introduce the component:
26 |
27 | ```js
28 | const generator = document.createElement('td-theme-generator');
29 | generator.setAttribute('device', 'mobile');
30 | document.body.appendChild(generator);
31 | ```
32 |
--------------------------------------------------------------------------------
/packages/theme-generator/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ["@vue/cli-plugin-babel/preset"],
3 | };
4 |
--------------------------------------------------------------------------------
/packages/theme-generator/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "esnext",
5 | "baseUrl": "./",
6 | "moduleResolution": "node",
7 | "paths": {
8 | "@/*": ["src/*"]
9 | },
10 | "lib": ["esnext", "dom", "dom.iterable", "scripthost"]
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/theme-generator/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/packages/theme-generator/public/favicon.ico
--------------------------------------------------------------------------------
/packages/theme-generator/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/README.md:
--------------------------------------------------------------------------------
1 | - `common` 公共部分(包括组件/方法)
2 |
3 | - `color-panel` 色彩配置面板
4 | - `font-panel` 字体配置面板
5 | - `shadow-panel` 阴影配置面板
6 | - `radius-panel` 圆角配置面板
7 | - `size-panel` 尺寸配置面板
8 |
9 | - `common/utils/vars.css` 官网(非组件的 token) 为避免调整主题生成器时对主题生成器部分不需要影响的内容造成影响
10 | - `common/built-in/themes` 内置皮肤
11 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/common/Themes/built-in/css/mobile/common/radius.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --td-radius-small: 3px;
3 | --td-radius-default: 6px;
4 | --td-radius-large: 9px;
5 | --td-radius-extraLarge: 12px;
6 | --td-radius-round: 999px;
7 | --td-radius-circle: 50%;
8 | }
--------------------------------------------------------------------------------
/packages/theme-generator/src/common/Themes/built-in/css/web/common/radius.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --td-radius-small: 2px;
3 | --td-radius-default: 3px;
4 | --td-radius-medium: 6px;
5 | --td-radius-large: 9px;
6 | --td-radius-extraLarge: 12px;
7 | --td-radius-round: 999px;
8 | --td-radius-circle: 50%;
9 | }
--------------------------------------------------------------------------------
/packages/theme-generator/src/common/i18n/mixin.js:
--------------------------------------------------------------------------------
1 | import enText from "./en-US";
2 | import cnText from "./zh-CN";
3 |
4 | const langMixin = {
5 | data() {
6 | return {
7 | lang: null,
8 | isEn: false,
9 | };
10 | },
11 | created() {
12 | const isEn = window.location.pathname.endsWith("en");
13 | this.lang = isEn ? enText : cnText;
14 | this.isEn = isEn
15 | },
16 | };
17 |
18 | export default langMixin;
19 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/dock/svg/AdjustSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/dock/svg/RecoverSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/dock/svg/SettingSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 |
3 | import Generator from "./Generator.vue";
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(Generator),
9 | }).$mount("#app");
10 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/radius-panel/built-in/border-radius.js:
--------------------------------------------------------------------------------
1 | export const RADIUS_OPTIONS = [
2 | { label: '全直角', enLabel: 'mini', value: 1 },
3 | { label: '小圆角', enLabel: 'small', value: 2 },
4 | { label: '默认', enLabel: 'default', value: 3 },
5 | { label: '大圆角', enLabel: 'large', value: 4 },
6 | { label: '超大', enLabel: 'max', value: 5 },
7 | { label: '自定义', enLabel: 'customized', value: 6, disabled: true },
8 | ];
9 |
10 | export const RADIUS_STEP_ARRAY = [
11 | [0, 0, 0, 0, 0, '50%'],
12 | [1, 2, 4, 6, 8, '50%'],
13 | [2, 3, 6, 9, 12, '50%'],
14 | [3, 4, 8, 12, 16, '50%'],
15 | [4, 6, 12, 18, 24, '50%'],
16 | ];
17 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/MarginAdjustSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
22 |
23 |
24 |
42 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/MarginSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
45 |
46 |
47 |
57 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/SectionDynamicSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
25 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/SectionLeftSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
18 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/SectionRightSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
18 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/SizeAdjustSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
28 |
--------------------------------------------------------------------------------
/packages/theme-generator/src/size-panel/svg/SizeSvg.vue:
--------------------------------------------------------------------------------
1 |
2 |
46 |
47 |
48 |
51 |
--------------------------------------------------------------------------------
/packages/theme-generator/vue.config.js:
--------------------------------------------------------------------------------
1 | const { defineConfig } = require("@vue/cli-service");
2 |
3 | module.exports = defineConfig({
4 | transpileDependencies: true,
5 | lintOnSave: false,
6 | chainWebpack: (config) => {
7 | config.module
8 | .rule("raw")
9 | .test(/\?raw$/)
10 | .use("raw-loader")
11 | .loader("raw-loader")
12 | .end();
13 | },
14 |
15 | });
16 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - "packages/*"
3 | - "site"
4 |
--------------------------------------------------------------------------------
/services/CORS:
--------------------------------------------------------------------------------
1 | http://localhost:3000
2 | http://localhost:10000
3 | https://tdesign.tencent.com
4 |
--------------------------------------------------------------------------------
/services/notice.json:
--------------------------------------------------------------------------------
1 | {
2 | "all": {},
3 | "site": {
4 | "title": "📢 TDesign Figma 设计资源上新啦,涉及组件上新、问题修复及 Table 组件变体优化,欢迎使用体验 🎨",
5 | "type": "primary",
6 | "actionUrl": "https://www.figma.com/design/KInDIZzoxifaKVQ3n5KB8W/TDesign-for-web?node-id=22414-33911&p=f&t=aWr2DlazJcoPsjic-0",
7 | "closeable": true
8 | },
9 | "vue": {},
10 | "react": {},
11 | "vue-next": {},
12 | "vue-mobile": {
13 | "title": "📢 站点接入主题生成器,支持自定义CSS 变量",
14 | "type": "primary",
15 | "closeable": true
16 | },
17 | "react-mobile": {
18 | "title": "📢 站点接入主题生成器,支持自定义CSS 变量",
19 | "type": "primary",
20 | "closeable": true
21 | },
22 | "miniprogram": {
23 | "title": "📢 站点接入主题生成器,支持自定义CSS 变量",
24 | "type": "primary",
25 | "closeable": true
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/site/.eslintignore:
--------------------------------------------------------------------------------
1 | snapshot*
2 | dist
3 | lib
4 | node_modules
5 | common
6 | cypress
7 | script/test/cypress
8 | _site
9 | temp*
10 | tdesign
11 | plugin-tdoc
12 | public
13 | spline
14 |
--------------------------------------------------------------------------------
/site/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": ["plugin:vue/essential", "standard","prettier"],
7 | "parserOptions": {
8 | "ecmaVersion": "latest",
9 | "parser": "@typescript-eslint/parser",
10 | "sourceType": "module"
11 | },
12 | "globals": {
13 | "aegis": "readonly",
14 | "NProgress": "readonly"
15 | },
16 | "plugins": ["vue", "@typescript-eslint"],
17 | "rules": {
18 | "indent": ["error", 2],
19 | "vue/multi-word-component-names": 0
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/site/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .vscode
3 | .DS_Store
4 | .vscode
5 | Dockerfile
6 | dist
7 | _site
8 | package
9 | tmp*
10 | temp*
11 | coverage
12 | test-report.html
13 | .idea/
14 | yarn.lock
15 | pnpm-lock.yaml
16 | *.zip
17 | .history
18 | script/test/cypress/screenshots
19 | script/test/cypress/videos
20 | script/test/cypress/results
21 | script/test/cypress/support
22 | results/
23 | _data
24 | static_site
25 |
--------------------------------------------------------------------------------
/site/README.md:
--------------------------------------------------------------------------------
1 | ## TDesign Official Site
2 |
3 | TDesign Official Site
4 |
5 | ### 🏗️ Develop
6 |
7 | ```
8 | npm run dev
9 | ```
10 |
11 | ### ⚙️ Build
12 |
13 | ```
14 | npm run build
15 | ```
16 |
--------------------------------------------------------------------------------
/site/commitlint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = { extends: ['@commitlint/config-conventional'] };
2 |
--------------------------------------------------------------------------------
/site/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 | TDesign - 开源的企业级设计体系,为设计师 & 开发者,打造工作美学
16 |
23 |
24 |
25 |
26 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/site/plugin-tdoc/index.js:
--------------------------------------------------------------------------------
1 | import vitePluginTdoc from 'vite-plugin-tdoc';
2 |
3 | import transforms from './transforms.js';
4 |
5 | export default () => vitePluginTdoc({
6 | transforms, // 解析markdown 数据
7 | markdown: {
8 | anchor: {
9 | tabIndex: false,
10 | config: (anchor) => ({
11 | permalink: anchor.permalink.linkInsideHeader({ symbol: '' }),
12 | }),
13 | },
14 | toc: {
15 | listClass: 'tdesign-toc_list',
16 | itemClass: 'tdesign-toc_list_item',
17 | linkClass: 'tdesign-toc_list_item_a',
18 | containerClass: 'tdesign-toc_container',
19 | },
20 | },
21 | });
22 |
--------------------------------------------------------------------------------
/site/plugin-tdoc/transforms.js:
--------------------------------------------------------------------------------
1 | import mdToVue from './md-to-vue.js';
2 |
3 | export default {
4 | render({ source, file, md }) {
5 | const sfc = mdToVue({ md, file, source });
6 |
7 | return sfc;
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/site/postcss.config.js:
--------------------------------------------------------------------------------
1 | const plugins = [
2 | require('autoprefixer'),
3 | require('cssnano')({
4 | preset: [
5 | 'default',
6 | {
7 | discardComments: {
8 | removeAll: true
9 | }
10 | }
11 | ]
12 | })
13 | ]
14 |
15 | module.exports = {
16 | plugins
17 | }
18 |
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_0.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_1.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_10.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_11.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_12.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_13.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_14.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_15.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_16.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_17.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_18.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_19.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_2.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_20.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_21.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_3.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_4.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_5.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_6.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_7.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_8.png
--------------------------------------------------------------------------------
/site/public/component-lottie-dark/images/img_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-dark/images/img_9.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_0.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_1.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_10.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_11.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_12.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_13.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_14.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_15.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_16.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_17.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_18.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_19.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_2.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_20.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_21.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_3.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_4.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_5.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_6.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_7.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_8.png
--------------------------------------------------------------------------------
/site/public/component-lottie-light/images/img_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/component-lottie-light/images/img_9.png
--------------------------------------------------------------------------------
/site/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/favicon.ico
--------------------------------------------------------------------------------
/site/public/home/component-dark.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/home/component-dark.mp4
--------------------------------------------------------------------------------
/site/public/home/component-light.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/home/component-light.mp4
--------------------------------------------------------------------------------
/site/public/home/compressed-banner-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/home/compressed-banner-dark.png
--------------------------------------------------------------------------------
/site/public/home/compressed-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/public/home/compressed-banner.png
--------------------------------------------------------------------------------
/site/spline/README.md:
--------------------------------------------------------------------------------
1 | ## 用途
2 |
3 | 备份 spline 文件,文件最终要存放在 cdn 上
--------------------------------------------------------------------------------
/site/spline/design/color_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/color_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/font_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/font_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/icon_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/icon_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/layout_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/layout_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/mode_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/site/spline/design/mode_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/site/spline/design/motion_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/motion_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/value_dark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/spline/design/value_light/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 | Untitled
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/site/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/assets/logo.png
--------------------------------------------------------------------------------
/site/src/components/all-icons.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/site/src/components/assets/Adobe-XD-Mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Adobe-XD-Mobile-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Adobe-XD-Mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Adobe-XD-Mobile.png
--------------------------------------------------------------------------------
/site/src/components/assets/Adobe-XD-Web-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Adobe-XD-Web-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Adobe-XD-Web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Adobe-XD-Web.png
--------------------------------------------------------------------------------
/site/src/components/assets/Axure-Mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Axure-Mobile-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Axure-Mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Axure-Mobile.png
--------------------------------------------------------------------------------
/site/src/components/assets/Axure-Web-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Axure-Web-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Axure-Web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Axure-Web.png
--------------------------------------------------------------------------------
/site/src/components/assets/CoDesign-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/CoDesign-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/CoDesign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/CoDesign.png
--------------------------------------------------------------------------------
/site/src/components/assets/Figma-Mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Figma-Mobile-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Figma-Mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Figma-Mobile.png
--------------------------------------------------------------------------------
/site/src/components/assets/Figma-Web-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Figma-Web-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Figma-Web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Figma-Web.png
--------------------------------------------------------------------------------
/site/src/components/assets/Sketch-Mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Sketch-Mobile-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Sketch-Mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Sketch-Mobile.png
--------------------------------------------------------------------------------
/site/src/components/assets/Sketch-TDesignMaker-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Sketch-TDesignMaker-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Sketch-TDesignMaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Sketch-TDesignMaker.png
--------------------------------------------------------------------------------
/site/src/components/assets/Sketch-Web-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Sketch-Web-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Sketch-Web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Sketch-Web.png
--------------------------------------------------------------------------------
/site/src/components/assets/Starter-UIkit-mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Starter-UIkit-mobile-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Starter-UIkit-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Starter-UIkit-mobile.png
--------------------------------------------------------------------------------
/site/src/components/assets/Starter-UIkit-pc-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Starter-UIkit-pc-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/Starter-UIkit-pc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/Starter-UIkit-pc.png
--------------------------------------------------------------------------------
/site/src/components/assets/TDesign-Js-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/TDesign-Js-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/TDesign-Js.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/TDesign-Js.png
--------------------------------------------------------------------------------
/site/src/components/assets/TDesign-Pixso-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/TDesign-Pixso-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/TDesign-Pixso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/TDesign-Pixso.png
--------------------------------------------------------------------------------
/site/src/components/assets/modao-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/modao-dark.png
--------------------------------------------------------------------------------
/site/src/components/assets/modao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/components/assets/modao.png
--------------------------------------------------------------------------------
/site/src/contributor.js:
--------------------------------------------------------------------------------
1 | // 设计师参与名单
2 | export const webDesignContributor = [
3 | 'pattybaby110',
4 | 'queenzhou2021',
5 | 'danayang0805',
6 | 'Carol-chuchu',
7 | 'asunazeng',
8 | 'titicomein',
9 | 'yeliup',
10 | 'gayhug',
11 | 'Athenaqin',
12 | 'wenjul',
13 | 'joyjjj',
14 | 'rorikzhang0505',
15 | 'danedeng',
16 | 'huangpiqiao',
17 | 'sisterray',
18 | 'Ellenhx',
19 | 'eele83',
20 | 'Wen1kang',
21 | 'jonathanchoiii',
22 | 'orihuang',
23 | 'Stone40',
24 | 'catenliu',
25 | 'jonrjiang',
26 | 'rayleeli',
27 | 'sharowuu',
28 | 'jasonxbjia',
29 | 'DOUBLE-DENG',
30 | 'luluyang429',
31 | 'Matata7',
32 | 'winnieguan1',
33 | 'Elenore1',
34 | 'ChenGeno',
35 | 'bruce0222',
36 | 'Aressliu',
37 | 'CanpanWu',
38 | 'bbingzhao',
39 | 'pearlfu',
40 | 'CRECOHE',
41 | 'keson1521 ',
42 | 'zhangpaopao0609',
43 | 'yupengcui',
44 | 'minrongh',
45 | 'shipman99',
46 | 'eugenewoody',
47 | 'burtonx',
48 | 'Lido8',
49 | 'isqinghui',
50 | 'MayDesign',
51 | 'Alimjan2013'
52 | ]
53 |
54 | export const mobileDesignContributor = [
55 | 'vistintin',
56 | 'pageee1021',
57 | 'pattybaby110',
58 | 'Wen1kang',
59 | 'ong17',
60 | 'Jayclelon',
61 | 'caixuan29',
62 | 'RADWIMPS426',
63 | 'imarchitect',
64 | 'eugenewoody'
65 | ]
66 |
67 | export const webChartDesignContributor = [
68 | 'Mengruli123',
69 | 'pearlfu'
70 | ]
71 |
--------------------------------------------------------------------------------
/site/src/main.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | import Vue from 'vue';
3 | import VueRouter from 'vue-router';
4 | import TDesign from 'tdesign-vue';
5 | import routes from './routes';
6 | import App from './App.vue';
7 | import '@/style/index.less';
8 |
9 | // import tdesign style;
10 | import 'tdesign-vue/es/style/index.css';
11 |
12 | // import site webcomponents
13 | import 'tdesign-site-components';
14 | import 'tdesign-site-components/lib/styles/style.css';
15 | import 'tdesign-site-components/lib/styles/prism-theme.less';
16 | import 'tdesign-site-components/lib/styles/prism-theme-dark.less';
17 | import "tdesign-icons-view";
18 | import { registerLocaleChange } from 'tdesign-site-components';
19 |
20 | registerLocaleChange()
21 |
22 | Vue.use(TDesign);
23 | Vue.use(VueRouter);
24 |
25 | Vue.config.ignoredElements = [/^td-/];
26 |
27 | const router = new VueRouter({
28 | mode: 'history',
29 | routes,
30 | });
31 |
32 | router.beforeEach((to, from, next) => {
33 | if (to.name !== from.name) {
34 | window.NProgress && NProgress.start?.();
35 | }
36 | next();
37 | });
38 |
39 | router.afterEach(() => {
40 | window.NProgress && NProgress.done?.();
41 | document.querySelector('td-stats')?.track?.();
42 | });
43 |
44 | new Vue({
45 | el: '#app',
46 | render: (h) => h(App),
47 | router,
48 | });
49 |
50 |
--------------------------------------------------------------------------------
/site/src/pages/about/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
38 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/TCloudNumber-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/TCloudNumber-Regular.ttf
--------------------------------------------------------------------------------
/site/src/pages/design/assets/attach.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/Arc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/Arc.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/Moderate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/Moderate.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/Simplify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/Simplify.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/accurate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/accurate.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/angle-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/angle-1.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/angle-2-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/angle-2-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/angle-2-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/angle-2-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/arc-1-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/arc-1-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/arc-1-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/arc-1-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-1.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-2.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-3-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-3-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-3-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-3-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-4-left-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-4-left-bottom.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-4-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-4-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-4-right-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-4-right-bottom.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/canvas-4-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/canvas-4-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/easy-1-left-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/easy-1-left-bottom.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/easy-1-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/easy-1-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/easy-1-right-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/easy-1-right-bottom.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/easy-1-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/easy-1-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/fracture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/fracture.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/grid-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/grid-1.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/grid-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/grid-2.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/grid-3-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/grid-3-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/grid-3-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/grid-3-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/line-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/line-1.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/line-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/line-2.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/line-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/line-3.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/line-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/line-4.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/round-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/round-1.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/round-2-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/round-2-left.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/icon/round-2-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/icon/round-2-right.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-1.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-10.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-11.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-12.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-13.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-14.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-15.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-16.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-16.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-17.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-17.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-2.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-3.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-4.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-5.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-6.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-7.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-8.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/layout/l-9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/layout/l-9.jpg
--------------------------------------------------------------------------------
/site/src/pages/design/assets/mode/starter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/mode/starter.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/motion/download.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/motion/ease-in.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/motion/ease-out.svg:
--------------------------------------------------------------------------------
1 |
18 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/motion/easing.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/motion/linear.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/axure-logo.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/emoji-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/source/emoji-light.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/figma-logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/mastergo-logo.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/md-logo.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/ry-logo.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/source/sketch-logo.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/education.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/education.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/health.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/health.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/map.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/political.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/political.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/power.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/power.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/safe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/safe.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/trade/travel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/trade/travel.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/values/banner-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/values/banner-dark.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/values/banner-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/values/banner-light.png
--------------------------------------------------------------------------------
/site/src/pages/design/assets/values/banner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/design/assets/values/banner.jpg
--------------------------------------------------------------------------------
/site/src/pages/home/assets/TencentSans-W7.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/TencentSans-W7.ttf
--------------------------------------------------------------------------------
/site/src/pages/home/assets/angular-logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/ax-logo.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/banner-dark.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/banner-dark.glb
--------------------------------------------------------------------------------
/site/src/pages/home/assets/banner-dark.hdr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/banner-dark.hdr
--------------------------------------------------------------------------------
/site/src/pages/home/assets/banner-thumb-dark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/banner-thumb-dark.jpg
--------------------------------------------------------------------------------
/site/src/pages/home/assets/banner-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/banner-thumb.jpg
--------------------------------------------------------------------------------
/site/src/pages/home/assets/banner.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/banner.glb
--------------------------------------------------------------------------------
/site/src/pages/home/assets/banner.hdr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/banner.hdr
--------------------------------------------------------------------------------
/site/src/pages/home/assets/breathe-bottom-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/breathe-bottom-dark.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/breathe-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/breathe-bottom.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/breathe-top-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/breathe-top-dark.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/breathe-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/breathe-top.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/component-swiper/1.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/component-swiper/11.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/component-swiper/21.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/component-swiper/22.svg:
--------------------------------------------------------------------------------
1 |
18 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/component-swiper/4.svg:
--------------------------------------------------------------------------------
1 |
22 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/figma-logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/flutter-logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/line-dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/line-light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/miniapp-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/miniapp-dark.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/miniapp-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/miniapp-light.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/miniapp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/miniapp.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/mobile-dark.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/mobile-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/mobile-light.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/mobile.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/qq-logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/rope-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/rope-dark.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/rope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/rope.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/sketch-logo.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/taro-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/taro-logo.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/tdesign-flow-dark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/tdesign-flow-dark.gif
--------------------------------------------------------------------------------
/site/src/pages/home/assets/tdesign-flow-light.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/tdesign-flow-light.gif
--------------------------------------------------------------------------------
/site/src/pages/home/assets/tdesign-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/tdesign-flow.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/tdesign-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/tdesign-profile.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/vue-logo.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/site/src/pages/home/assets/web-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/web-dark.png
--------------------------------------------------------------------------------
/site/src/pages/home/assets/web-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/pages/home/assets/web-light.png
--------------------------------------------------------------------------------
/site/src/pages/home/consts.js:
--------------------------------------------------------------------------------
1 | export const contributors = [
2 | 'pattybaby110',
3 | 'queenzhou2021',
4 | 'danayang0805',
5 | 'Carol-chuchu',
6 | 'asunazeng',
7 | 'titicomein',
8 | 'yeliup',
9 | 'gayhug',
10 | 'vistintin',
11 | 'Athenaqin',
12 | 'joyjjj',
13 | 'rorikzhang0505',
14 | 'danedeng',
15 | 'sisterray',
16 | 'Ellenhx',
17 | 'eele83',
18 | 'Wen1kang',
19 | 'jonathanchoiii',
20 | 'orihuang',
21 | 'Stone40',
22 | 'catenliu',
23 | 'jonrjiang',
24 | 'rayleeli',
25 | 'pageee1021',
26 | 'ong17',
27 | 'sharowuu',
28 | 'jasonxbjia',
29 | 'DOUBLE-DENG',
30 | 'luluyang429',
31 | 'Matata7',
32 | 'winnieguan1',
33 | 'Jayclelon',
34 | 'Elenore1',
35 | 'ChenGeno',
36 | 'bruce0222',
37 | 'Aressliu',
38 | 'CanpanWu',
39 | 'bbingzhao',
40 | 'pearlfu',
41 | 'CRECOHE',
42 | 'Alimjan2013',
43 | 'yupengcui',
44 | 'keson1521 ',
45 | 'minrongh',
46 | 'zhangpaopao0609',
47 | 'eugenewoody',
48 | 'shipman99',
49 | 'burtonx',
50 | '123456-sisi',
51 | 'Lido8',
52 | 'isqinghui'
53 | ]
54 |
--------------------------------------------------------------------------------
/site/src/pages/mixins/anchor.js:
--------------------------------------------------------------------------------
1 | export default {
2 | data () {
3 | return {
4 | catalog: []
5 | }
6 | },
7 | mounted () {
8 | this.genAnchor()
9 | },
10 | methods: {
11 | // 生成目录
12 | genAnchor () {
13 | if (!this.$refs.article) return
14 | const articleContent = this.$refs.article
15 | const nodes = ['H2', 'H3']
16 | const titles = []
17 | articleContent.childNodes.forEach((e, index) => {
18 | if (nodes.includes(e.nodeName)) {
19 | const id = `header-${index}`
20 | e.setAttribute('id', id)
21 | titles.push({
22 | id,
23 | title: e.innerHTML,
24 | level: Number(e.nodeName.substring(1, 2)),
25 | nodeName: e.nodeName,
26 | children: []
27 | })
28 | }
29 | })
30 |
31 | const isEveryLevel3 = titles.every(t => t.level === 3)
32 | this.catalog = titles.reduce((acc, curr) => {
33 | if (isEveryLevel3) {
34 | acc.push(curr)
35 | } else {
36 | if (curr.level === 2) {
37 | acc.push(curr)
38 | } else if (curr.level === 3) {
39 | acc[acc.length - 1].children.push(curr)
40 | }
41 | }
42 | return acc
43 | }, [])
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/site/src/pages/mixins/page-load.js:
--------------------------------------------------------------------------------
1 | export default {
2 | data () {
3 | return {
4 | loaded: false
5 | }
6 | },
7 |
8 | computed: {
9 | contentStyle () {
10 | const { loaded } = this
11 | return { visibility: loaded ? 'visible' : 'hidden' }
12 | }
13 | },
14 |
15 | methods: {
16 | contentLoaded (callback) {
17 | requestAnimationFrame(() => {
18 | this.loaded = true
19 | callback()
20 | })
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/site/src/style/icon.less:
--------------------------------------------------------------------------------
1 | .doc-icon {
2 | img {
3 | border-radius: 6px;
4 | border: 1px solid var(--component-border);
5 | &.tag {
6 | border: 0;
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/site/src/style/index.less:
--------------------------------------------------------------------------------
1 | @import './home.less';
2 | @import './source.less';
3 | @import './color.less';
4 | @import './fonts.less';
5 | @import './motion.less';
6 | @import './icon.less';
7 |
--------------------------------------------------------------------------------
/site/src/style/layout.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tencent/tdesign/044dcbd3672c1ea1c3cd78f515277690f151b18e/site/src/style/layout.less
--------------------------------------------------------------------------------