├── .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 |
32 |
33 |
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 |
28 | 29 |
30 | 31 |
32 |
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 |
34 |
35 | 36 |
37 |
38 | 39 |
40 |
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 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/angular-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/components/src/images/backtop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/bulletpoint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/components/src/images/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /packages/components/src/images/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/components/src/images/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/fake-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/flutter-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /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 | 2 | 5 | -------------------------------------------------------------------------------- /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 | 2 | 4 | 6 | -------------------------------------------------------------------------------- /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 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /packages/components/src/images/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/components/src/images/jump.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /packages/components/src/images/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/components/src/images/menu-fold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/components/src/images/menu-unfold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/components/src/images/mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/moon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/qq-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 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 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/components/src/images/translate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/components/src/images/vue-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/components/src/images/wenjuan-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 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 | 6 | -------------------------------------------------------------------------------- /packages/theme-generator/src/dock/svg/RecoverSvg.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/theme-generator/src/dock/svg/SettingSvg.vue: -------------------------------------------------------------------------------- 1 | 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 | 23 | 24 | 42 | -------------------------------------------------------------------------------- /packages/theme-generator/src/size-panel/svg/MarginSvg.vue: -------------------------------------------------------------------------------- 1 | 46 | 47 | 57 | -------------------------------------------------------------------------------- /packages/theme-generator/src/size-panel/svg/SectionDynamicSvg.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 25 | -------------------------------------------------------------------------------- /packages/theme-generator/src/size-panel/svg/SectionLeftSvg.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /packages/theme-generator/src/size-panel/svg/SectionRightSvg.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /packages/theme-generator/src/size-panel/svg/SizeAdjustSvg.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 28 | -------------------------------------------------------------------------------- /packages/theme-generator/src/size-panel/svg/SizeSvg.vue: -------------------------------------------------------------------------------- 1 | 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 | 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 | 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 | 2 | 3 | 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 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/motion/ease-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/motion/ease-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/motion/easing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/motion/linear.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/source/axure-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/source/mastergo-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/source/md-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/source/ry-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /site/src/pages/design/assets/source/sketch-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/ax-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/component-swiper/11.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/component-swiper/21.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/component-swiper/22.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/component-swiper/4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/figma-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/flutter-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/line-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /site/src/pages/home/assets/line-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /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 | 2 | 3 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 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 | 2 | 3 | 4 | 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 --------------------------------------------------------------------------------