├── .browserslistrc ├── .eslintrc.js ├── .github └── workflows │ └── test.yml ├── .gitignore ├── .nvmrc ├── .prettierignore ├── .prettierrc.yaml ├── .vscode └── settings.json ├── .yarn └── releases │ └── yarn-3.2.1.cjs ├── .yarnrc.yml ├── CODEOWNERS ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── LICENSE ├── README.md ├── RELEASING.md ├── babel.config.js ├── jest.config.js ├── jest.setup.js ├── lerna.json ├── next ├── .gitignore ├── README.md ├── components │ ├── alert │ │ ├── alert.module.scss │ │ └── alert.tsx │ ├── anatomy │ │ ├── index.module.scss │ │ └── index.tsx │ ├── badge │ │ └── index.tsx │ ├── doc-search │ │ └── doc-search.tsx │ ├── dodont │ │ ├── index.module.scss │ │ └── index.tsx │ ├── example-box │ │ └── index.tsx │ ├── generate-slug │ │ └── generate-slug.ts │ ├── inline-code │ │ ├── inline-code.module.scss │ │ └── inline-code.tsx │ ├── layout │ │ ├── layout.module.scss │ │ └── layout.tsx │ ├── mdx │ │ ├── code-block │ │ │ ├── code-block.module.scss │ │ │ ├── code-block.tsx │ │ │ ├── prism-theme.ts │ │ │ ├── react-code-block.tsx │ │ │ └── styles.ts │ │ ├── components.tsx │ │ ├── mdx.module.scss │ │ └── mdx.tsx │ ├── motion │ │ ├── general │ │ │ ├── banner │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── color │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ ├── easing │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ ├── pop │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ ├── scale │ │ │ │ ├── index.jsx │ │ │ │ ├── index.module.scss │ │ │ │ └── training.jpg │ │ │ ├── skip │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ └── slide │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ └── page │ │ │ ├── android │ │ │ ├── full-page │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ └── parent-child │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ ├── ios │ │ │ ├── full-screen-modal │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ └── page-sheet │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ ├── push │ │ │ ├── index.jsx │ │ │ └── index.module.scss │ │ │ └── shared.scss │ ├── package-table │ │ └── package-table.tsx │ ├── page-header │ │ └── page-header.tsx │ ├── side-nav │ │ ├── side-nav.module.scss │ │ └── side-nav.tsx │ ├── skeleton-loader │ │ ├── index.module.scss │ │ └── index.tsx │ ├── swatch │ │ └── swatch.tsx │ ├── tab-nav │ │ └── tab-nav.tsx │ ├── tag │ │ └── tag.tsx │ ├── thumbprint-atomic │ │ ├── get-classes │ │ │ └── get-classes.tsx │ │ └── table │ │ │ └── table.tsx │ ├── thumbprint-components │ │ ├── deprecated-component-alert │ │ │ └── deprecated-component-alert.tsx │ │ ├── overview │ │ │ ├── overview.jsx │ │ │ └── overview.module.scss │ │ └── props-table │ │ │ ├── component-definition.ts │ │ │ ├── prop-type.jsx │ │ │ └── prop-type.module.scss │ ├── thumbprint-guide │ │ ├── swatch-usage │ │ │ └── index.tsx │ │ └── swatch │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ ├── thumbprint-tokens │ │ └── token-section │ │ │ ├── token-example │ │ │ └── token-example.tsx │ │ │ └── token-section.tsx │ ├── thumbprint-www │ │ ├── featured │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── svg │ │ │ │ ├── about.svg │ │ │ │ ├── checklist.svg │ │ │ │ ├── color.svg │ │ │ │ └── help.svg │ │ ├── hero │ │ │ ├── heroImg.svg │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ └── notices │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ └── wrap │ │ ├── wrap.module.scss │ │ └── wrap.tsx ├── images │ ├── pages │ │ ├── components │ │ │ └── avatar │ │ │ │ ├── android │ │ │ │ ├── online-indicator.png │ │ │ │ ├── sizes.png │ │ │ │ ├── variations.png │ │ │ │ └── without-images.png │ │ │ │ ├── ios │ │ │ │ ├── online-now.png │ │ │ │ └── variations.png │ │ │ │ └── swiftui │ │ │ │ ├── example-1.png │ │ │ │ ├── example-2.png │ │ │ │ └── example-3.png │ │ ├── guide │ │ │ └── product │ │ │ │ ├── aspect-ratio │ │ │ │ ├── avatar-customer.png │ │ │ │ ├── avatar-pro.png │ │ │ │ ├── custom.png │ │ │ │ ├── customer-review.png │ │ │ │ ├── embed.png │ │ │ │ ├── hero.png │ │ │ │ ├── portrait-size.jpg │ │ │ │ ├── pro-profile.png │ │ │ │ └── service-image.png │ │ │ │ ├── color │ │ │ │ ├── overiew │ │ │ │ │ ├── emphasis.png │ │ │ │ │ ├── interaction.png │ │ │ │ │ └── usage.png │ │ │ │ ├── palette │ │ │ │ │ ├── blue.png │ │ │ │ │ ├── green.png │ │ │ │ │ ├── indigo.png │ │ │ │ │ ├── neutral.png │ │ │ │ │ ├── purple.png │ │ │ │ │ ├── red.png │ │ │ │ │ └── yellow.png │ │ │ │ └── usage │ │ │ │ │ ├── background │ │ │ │ │ ├── accent.png │ │ │ │ │ ├── alert.png │ │ │ │ │ ├── caution.png │ │ │ │ │ ├── guidance.png │ │ │ │ │ ├── intro.png │ │ │ │ │ ├── neutral.png │ │ │ │ │ ├── primary.png │ │ │ │ │ └── success.png │ │ │ │ │ ├── borders │ │ │ │ │ ├── guidance.png │ │ │ │ │ ├── intro.png │ │ │ │ │ └── neutral.png │ │ │ │ │ ├── icons │ │ │ │ │ ├── accent.png │ │ │ │ │ ├── alert.png │ │ │ │ │ ├── caution.png │ │ │ │ │ ├── guidance.png │ │ │ │ │ ├── intro.png │ │ │ │ │ ├── neutral.png │ │ │ │ │ ├── primary.png │ │ │ │ │ ├── success.png │ │ │ │ │ └── usage-intro-icon.png │ │ │ │ │ └── text │ │ │ │ │ ├── accent.png │ │ │ │ │ ├── alert.png │ │ │ │ │ ├── caution.png │ │ │ │ │ ├── guidance.png │ │ │ │ │ ├── intro.png │ │ │ │ │ ├── neutral.png │ │ │ │ │ ├── primary.png │ │ │ │ │ └── success.png │ │ │ │ ├── design-tokens │ │ │ │ └── tokens.png │ │ │ │ ├── loaders │ │ │ │ ├── android-loader.gif │ │ │ │ └── ios-loader.gif │ │ │ │ ├── motion │ │ │ │ ├── app-store.gif │ │ │ │ └── transition-note.jpg │ │ │ │ ├── spacers │ │ │ │ ├── spacer-layout-1.png │ │ │ │ ├── spacer-layout-2.png │ │ │ │ └── spacer-layout-3.png │ │ │ │ ├── toolkits │ │ │ │ ├── toolkit-1.png │ │ │ │ ├── toolkit-2.png │ │ │ │ ├── toolkit-3.png │ │ │ │ └── toolkit-4.png │ │ │ │ └── truncation │ │ │ │ ├── list.png │ │ │ │ ├── multiline.png │ │ │ │ └── read-more.png │ │ ├── icons │ │ │ └── icon-hero.png │ │ └── overview │ │ │ ├── accessibility │ │ │ └── accessibility-illustration.svg │ │ │ ├── content-design │ │ │ └── surfaces-and-elements │ │ │ │ ├── email.png │ │ │ │ └── push.png │ │ │ └── product-design │ │ │ └── plugin-contrast.png │ └── thumbprint-logo.svg ├── next.config.js ├── package.json ├── pages │ ├── _app.tsx │ ├── atomic │ │ ├── index.tsx │ │ └── usage.mdx │ ├── components │ │ ├── avatar │ │ │ ├── android.mdx │ │ │ ├── ios.mdx │ │ │ ├── react.mdx │ │ │ ├── swiftui.mdx │ │ │ └── usage.mdx │ │ └── overview.tsx │ ├── guidelines │ │ ├── aspect-ratio.tsx │ │ ├── brand-assets.tsx │ │ ├── breakpoints.tsx │ │ ├── color │ │ │ ├── accessibility.tsx │ │ │ ├── overview.tsx │ │ │ ├── palette.tsx │ │ │ └── usage │ │ │ │ ├── background.tsx │ │ │ │ ├── borders.tsx │ │ │ │ ├── icons.tsx │ │ │ │ └── text.tsx │ │ ├── design-tokens.tsx │ │ ├── iconography.tsx │ │ ├── loaders.tsx │ │ ├── motion.tsx │ │ ├── spacers.tsx │ │ ├── toolkits.tsx │ │ ├── truncation.tsx │ │ └── typography.tsx │ ├── icons.tsx │ ├── index.tsx │ ├── overview │ │ ├── about.tsx │ │ ├── accessibility.tsx │ │ ├── content-design │ │ │ ├── grammar-and-mechanics.tsx │ │ │ ├── inclusion-and-accessibility.tsx │ │ │ ├── surfaces-and-elements.tsx │ │ │ └── voice-and-tone.tsx │ │ ├── contributing.tsx │ │ ├── developers.tsx │ │ └── product-design.tsx │ └── tokens │ │ └── [platform].tsx ├── public │ ├── brand-assets │ │ ├── customer_app_icon.svg │ │ ├── customer_app_icon.zip │ │ ├── logomark_black.svg │ │ ├── logomark_black.zip │ │ ├── logomark_blue.svg │ │ ├── logomark_blue.zip │ │ ├── logomark_grey.svg │ │ ├── logomark_grey.zip │ │ ├── logotype.svg │ │ ├── logotype.zip │ │ ├── pro_app_icon.svg │ │ └── pro_app_icon.zip │ └── favicon.ico ├── styles │ └── global.scss ├── tsconfig.json └── utils │ ├── component-page-props.ts │ ├── get-active-section.ts │ ├── get-content-page-static-props.ts │ ├── get-layout-props.ts │ ├── guidelines │ └── color │ │ ├── color-usage-categories.tsx │ │ ├── color-usage-mappings.ts │ │ ├── color-usage-nav.tsx │ │ └── color-usage-types.ts │ └── mdx-get-static-props.ts ├── package.json ├── packages ├── gatsby-source-coda │ ├── gatsby-node.js │ └── package.json ├── thumbprint-atomic │ ├── CHANGELOG.md │ ├── README.md │ ├── __snapshots__ │ │ └── test.js.snap │ ├── generate-css.ts │ ├── package.json │ ├── src │ │ ├── atomic.scss │ │ └── packages │ │ │ ├── aspect-ratio.scss │ │ │ ├── background-position.scss │ │ │ ├── background-size.scss │ │ │ ├── border-color.scss │ │ │ ├── border-radius.scss │ │ │ ├── border-style.scss │ │ │ ├── border-width.scss │ │ │ ├── border.scss │ │ │ ├── box-shadow.scss │ │ │ ├── color.scss │ │ │ ├── coordinates.scss │ │ │ ├── cursor.scss │ │ │ ├── display.scss │ │ │ ├── flexbox.scss │ │ │ ├── font-weight.scss │ │ │ ├── gap.scss │ │ │ ├── grid.scss │ │ │ ├── height.scss │ │ │ ├── margin.scss │ │ │ ├── max-width.scss │ │ │ ├── overflow.scss │ │ │ ├── padding.scss │ │ │ ├── position.scss │ │ │ ├── text-align.scss │ │ │ ├── text-decoration.scss │ │ │ ├── text-transform.scss │ │ │ ├── truncate.scss │ │ │ ├── vertical-align.scss │ │ │ ├── visually-hidden.scss │ │ │ ├── white-space.scss │ │ │ ├── width.scss │ │ │ ├── word-break.scss │ │ │ └── z-index.scss │ └── test.js ├── thumbprint-codemods │ ├── CHANGELOG.md │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── change-prop-values.js │ │ └── rename-imports.js │ ├── package.json │ └── src │ │ ├── avatar-import-name │ │ ├── index.js │ │ └── test.js │ │ ├── avatar-sizes │ │ ├── index.js │ │ └── test.js │ │ ├── button-secondary-to-tertiary │ │ ├── index.js │ │ └── test.js │ │ └── great-alignment-renames │ │ ├── index.js │ │ └── test.js ├── thumbprint-font-face │ ├── CHANGELOG.md │ ├── README.md │ ├── __snapshots__ │ │ └── test.ts.snap │ ├── _index.scss │ ├── package.json │ └── test.ts ├── thumbprint-global-css │ ├── CHANGELOG.md │ ├── README.md │ ├── __snapshots__ │ │ └── test.ts.snap │ ├── generate-css.ts │ ├── package.json │ ├── src │ │ ├── packages │ │ │ ├── a.scss │ │ │ ├── body.scss │ │ │ └── reset.scss │ │ └── thumbprint-global.scss │ └── test.ts ├── thumbprint-react │ ├── CHANGELOG.md │ ├── components │ │ ├── Alert │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── AlertBanner │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Avatar │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── subcomponents │ │ │ │ ├── badge.module.scss │ │ │ │ └── badge.tsx │ │ │ └── test.tsx │ │ ├── Button │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── ButtonRow │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Calendar │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Carousel │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── base-carousel.module.scss │ │ │ ├── base-carousel.tsx │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Checkbox │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Chip │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Dropdown │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Fab │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── FormNote │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Grid │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── HorizontalRule │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Image │ │ │ ├── get-scroll-parent.test.tsx │ │ │ ├── get-scroll-parent.ts │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── test.tsx │ │ │ └── use-lazy-load.ts │ │ ├── InputRow │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Label │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Link │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── List │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── LoaderDots │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Modal │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── components │ │ │ │ ├── sticky-footer.module.scss │ │ │ │ ├── sticky-footer.tsx │ │ │ │ └── transition.tsx │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── ModalBase │ │ │ ├── __snapshots__ │ │ │ │ └── test.jsx.snap │ │ │ ├── _constants.scss │ │ │ ├── index.jsx │ │ │ ├── subcomponents │ │ │ │ ├── modal-contents │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ └── modal-structure │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ └── test.jsx │ │ ├── ModalCurtain │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── components │ │ │ │ └── no-scroll.tsx │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── ModalStandard │ │ │ ├── __snapshots__ │ │ │ │ └── test.jsx.snap │ │ │ ├── index.jsx │ │ │ ├── index.module.scss │ │ │ └── test.jsx │ │ ├── Pill │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Popover │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Radio │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── ServiceCard │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── StarRating │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── TextArea │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── TextInput │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Tooltip │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── Type │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ │ ├── UIAction │ │ │ ├── __snapshots__ │ │ │ │ └── test.tsx.snap │ │ │ ├── get-anchor-props.ts │ │ │ ├── get-button-props.ts │ │ │ ├── index.tsx │ │ │ ├── is-thumbtack-url.test.ts │ │ │ ├── is-thumbtack-url.ts │ │ │ ├── plain.module.scss │ │ │ ├── plain.tsx │ │ │ ├── test.tsx │ │ │ ├── themed.module.scss │ │ │ └── themed.tsx │ │ └── Wrap │ │ │ ├── __snapshots__ │ │ │ └── test.tsx.snap │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ └── test.tsx │ ├── icons │ │ ├── alert-check.jsx │ │ ├── alert-info.jsx │ │ ├── alert-warning.jsx │ │ ├── blocked-filled.jsx │ │ ├── index.jsx │ │ ├── info-filled.jsx │ │ └── warning-filled.jsx │ ├── index.ts │ ├── package.json │ ├── rollup.config.js │ ├── tsconfig.types.json │ └── utils │ │ ├── ConditionalPortal.tsx │ │ ├── can-use-dom.ts │ │ ├── use-close-on-escape.ts │ │ └── use-focus-trap.ts └── thumbprint-scss │ ├── CHANGELOG.md │ ├── README.md │ ├── __snapshots__ │ └── test.js.snap │ ├── components.scss │ ├── generate-css.js │ ├── mixins.scss │ ├── mixins │ ├── avatar.scss │ ├── button.scss │ ├── link.scss │ ├── list.scss │ ├── longread.scss │ ├── mixin.scss │ ├── type.scss │ └── wrap.scss │ ├── node-sass-importer.js │ ├── package.json │ ├── scss │ ├── alert.scss │ ├── avatar.scss │ ├── button-row.scss │ ├── button.scss │ ├── checkbox.scss │ ├── form-note.scss │ ├── grid.scss │ ├── hr.scss │ ├── input-row.scss │ ├── input.scss │ ├── label.scss │ ├── link.scss │ ├── list.scss │ ├── loader.scss │ ├── longread.scss │ ├── radio.scss │ ├── select.scss │ ├── textarea.scss │ ├── type.scss │ └── wrap.scss │ └── test.js ├── scripts └── should-build-package.js ├── stylelint.config.js ├── tsconfig.json ├── typings └── index.d.ts ├── www ├── .eslintrc.js ├── .gitignore ├── README.md ├── gatsby-config.js ├── gatsby-node.js ├── package.json ├── plugins │ ├── gatsby-source-coda │ ├── gatsby-transformer-thumbprint-atomic │ ├── gatsby-transformer-thumbprint-components │ └── gatsby-transformer-thumbprint-tokens ├── postcss.config.js ├── src │ ├── components │ │ ├── alert │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── anatomy │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── badge │ │ │ └── index.tsx │ │ ├── container │ │ │ ├── doc-search.tsx │ │ │ ├── get-component-link-props.ts │ │ │ ├── index.module.scss │ │ │ ├── index.tsx │ │ │ ├── side-nav.module.scss │ │ │ ├── side-nav.tsx │ │ │ └── thumbprintLogo.svg │ │ ├── dodont │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── generate-slug │ │ │ └── index.ts │ │ ├── mdx │ │ │ ├── code-block │ │ │ │ ├── index.module.scss │ │ │ │ ├── index.tsx │ │ │ │ ├── prism-theme.ts │ │ │ │ ├── react-code-block.tsx │ │ │ │ └── styles.ts │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── motion │ │ │ ├── general │ │ │ │ ├── banner │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── color │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── index.tsx │ │ │ │ ├── easing │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ ├── pop │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ ├── scale │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.module.scss │ │ │ │ │ └── training.jpg │ │ │ │ ├── skip │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ └── slide │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ └── page │ │ │ │ ├── android │ │ │ │ ├── full-page │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ └── parent-child │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ ├── ios │ │ │ │ ├── full-screen-modal │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ └── page-sheet │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.module.scss │ │ │ │ ├── push │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ │ │ └── shared.scss │ │ ├── package-table │ │ │ └── index.tsx │ │ ├── page-header │ │ │ └── index.tsx │ │ ├── skeleton-loader │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ │ ├── swatch │ │ │ └── index.tsx │ │ ├── tab-nav │ │ │ └── index.tsx │ │ ├── tag │ │ │ └── index.tsx │ │ ├── thumbprint-components │ │ │ ├── component-footer │ │ │ │ ├── index.jsx │ │ │ │ ├── prop-type.jsx │ │ │ │ └── prop-type.module.scss │ │ │ ├── component-header │ │ │ │ ├── component-package-table.jsx │ │ │ │ ├── index.jsx │ │ │ │ └── platform-nav.jsx │ │ │ ├── deprecated-component-alert │ │ │ │ └── index.jsx │ │ │ ├── index.jsx │ │ │ └── overview │ │ │ │ ├── index.jsx │ │ │ │ └── index.module.scss │ │ ├── thumbprint-guide │ │ │ ├── swatch-usage │ │ │ │ └── index.tsx │ │ │ └── swatch │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── thumbprint-www │ │ │ ├── featured │ │ │ │ ├── index.module.scss │ │ │ │ ├── index.tsx │ │ │ │ └── svg │ │ │ │ │ ├── about.svg │ │ │ │ │ ├── checklist.svg │ │ │ │ │ ├── color.svg │ │ │ │ │ └── help.svg │ │ │ ├── hero │ │ │ │ ├── heroImg.svg │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ │ └── notices │ │ │ │ ├── index.module.scss │ │ │ │ └── index.tsx │ │ ├── usage-img │ │ │ └── index.tsx │ │ └── wrap │ │ │ ├── index.module.scss │ │ │ └── index.tsx │ └── pages │ │ ├── components │ │ ├── action-sheet │ │ │ └── ios │ │ │ │ └── index.mdx │ │ ├── alert-banner │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ ├── swiftui │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── alertbanner-cta-do.png │ │ │ │ ├── alertbanner-cta-dont.png │ │ │ │ ├── alertbanner-do.png │ │ │ │ ├── alertbanner-dont.png │ │ │ │ └── index.mdx │ │ ├── alert │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── avatar │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ ├── scss │ │ │ │ └── index.mdx │ │ │ ├── swiftui │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ └── index.mdx │ │ ├── button-row │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── button │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ ├── scss │ │ │ │ └── index.mdx │ │ │ ├── swiftui │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── anatomy.png │ │ │ │ ├── best-practices-do-1.png │ │ │ │ ├── best-practices-do-2.png │ │ │ │ ├── best-practices-do-3.png │ │ │ │ ├── best-practices-do-4.png │ │ │ │ ├── best-practices-do-5.png │ │ │ │ ├── best-practices-dont-1.png │ │ │ │ ├── best-practices-dont-2.png │ │ │ │ ├── best-practices-dont-3.png │ │ │ │ ├── best-practices-dont-4.png │ │ │ │ ├── best-practices-dont-5.png │ │ │ │ ├── color-caution.png │ │ │ │ ├── color-primary.png │ │ │ │ ├── color-secondary.png │ │ │ │ ├── color-solid.png │ │ │ │ ├── color-tertiary.png │ │ │ │ ├── index.mdx │ │ │ │ ├── spacing-large-100-perc.png │ │ │ │ ├── spacing-large-auto.png │ │ │ │ ├── spacing-small-auto.png │ │ │ │ └── specs-sizing.png │ │ ├── calendar │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── carousel │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ ├── carousel.gif │ │ │ │ └── index.mdx │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── checkbox │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── chip │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── swiftui │ │ │ │ └── index.mdx │ │ ├── date-picker │ │ │ └── ios │ │ │ │ └── index.mdx │ │ ├── dropdown │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── fab │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── font-face │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── form-note │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── global-css │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── grid │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ ├── scss │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── grid-browser-2.png │ │ │ │ ├── grid-browser.png │ │ │ │ └── index.mdx │ │ ├── horizontal-rule │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ ├── scss │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── anatomy.png │ │ │ │ ├── do-subtle.png │ │ │ │ ├── do-text-separation.png │ │ │ │ ├── dont-hard-line.png │ │ │ │ ├── dont-high-contrast.png │ │ │ │ ├── index.mdx │ │ │ │ ├── specs-color.png │ │ │ │ ├── specs-sizing.png │ │ │ │ └── specs-spacing.png │ │ ├── icon-button │ │ │ └── ios │ │ │ │ └── index.mdx │ │ ├── image │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── input-row │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── label │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── link │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── list │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── loader-dots │ │ │ ├── ios │ │ │ │ ├── index.mdx │ │ │ │ ├── ios-loaderdots-brand-medium.gif │ │ │ │ ├── ios-loaderdots-brand-small.gif │ │ │ │ ├── ios-loaderdots-inverse-medium.gif │ │ │ │ └── ios-loaderdots-muted-medium.gif │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ ├── scss │ │ │ │ └── index.mdx │ │ │ └── swiftui │ │ │ │ └── index.mdx │ │ ├── longread │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── mixins │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── modal-base │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── modal-curtain │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── modal-standard │ │ │ └── react │ │ │ │ └── index.mdx │ │ ├── modal │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── index.mdx │ │ │ │ ├── modal-anatomy.png │ │ │ │ ├── modal-announce.png │ │ │ │ ├── modal-break-1-red.png │ │ │ │ ├── modal-break-1.png │ │ │ │ ├── modal-break-2-red.png │ │ │ │ ├── modal-break-2.png │ │ │ │ ├── modal-do.png │ │ │ │ ├── modal-dont.png │ │ │ │ ├── modal-result.png │ │ │ │ ├── modal-size-1.png │ │ │ │ ├── modal-size-2.png │ │ │ │ └── modal-trigger.png │ │ ├── navigation-bar │ │ │ └── ios │ │ │ │ └── index.mdx │ │ ├── partial-sheet │ │ │ └── ios │ │ │ │ └── index.mdx │ │ ├── pill │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── anatomy.png │ │ │ │ ├── index.mdx │ │ │ │ ├── pill-do-a11y.png │ │ │ │ ├── pill-do-icons.png │ │ │ │ ├── pill-dont-a11y.png │ │ │ │ ├── pill-dont-icons.png │ │ │ │ ├── specs-color.png │ │ │ │ ├── specs-sizing.png │ │ │ │ └── specs-spacing.png │ │ ├── popover │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ └── index.mdx │ │ ├── radio │ │ │ ├── ios │ │ │ │ ├── contentPlacementLeadingLTR.png │ │ │ │ ├── contentPlacementTrailingLTR.png │ │ │ │ ├── default.png │ │ │ │ ├── deselected.png │ │ │ │ ├── disabled.png │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── service-card │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── index.mdx │ │ │ │ ├── service-card-icon.png │ │ │ │ ├── service-card-layout.png │ │ │ │ ├── service-card-max-width.png │ │ │ │ ├── service-card-min-width.png │ │ │ │ └── service-card.png │ │ ├── shadow-card │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ └── swiftui │ │ │ │ └── index.mdx │ │ ├── star-rating │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── swiftui │ │ │ │ └── index.mdx │ │ ├── switch │ │ │ └── ios │ │ │ │ └── index.mdx │ │ ├── text-area │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── text-input │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ ├── toast │ │ │ ├── android │ │ │ │ └── index.mdx │ │ │ ├── ios │ │ │ │ ├── alert.png │ │ │ │ ├── custom.png │ │ │ │ ├── index.mdx │ │ │ │ └── toast.png │ │ │ └── swiftui │ │ │ │ ├── alert.png │ │ │ │ ├── index.mdx │ │ │ │ └── thumbprintui_toast.png │ │ ├── tooltip │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── usage │ │ │ │ ├── bottom.png │ │ │ │ ├── dark.png │ │ │ │ ├── default-2.png │ │ │ │ ├── default.png │ │ │ │ ├── do-1.png │ │ │ │ ├── do-2.png │ │ │ │ ├── dont-1.png │ │ │ │ ├── dont-2.png │ │ │ │ ├── dont-3.png │ │ │ │ ├── index.mdx │ │ │ │ ├── light.png │ │ │ │ ├── side.png │ │ │ │ └── top.png │ │ ├── type │ │ │ ├── ios │ │ │ │ └── index.mdx │ │ │ ├── react │ │ │ │ └── index.mdx │ │ │ └── scss │ │ │ │ └── index.mdx │ │ └── wrap │ │ │ ├── react │ │ │ └── index.mdx │ │ │ ├── scss │ │ │ └── index.mdx │ │ │ └── usage │ │ │ ├── grid-browser-2.png │ │ │ ├── grid-browser.png │ │ │ └── index.mdx │ │ ├── guide │ │ └── product │ │ │ ├── aspect-ratio │ │ │ ├── avatar-customer.png │ │ │ ├── avatar-pro.png │ │ │ ├── custom.png │ │ │ ├── customer-review.png │ │ │ ├── embed.png │ │ │ ├── hero.png │ │ │ ├── index.mdx │ │ │ ├── portrait-size.jpg │ │ │ ├── pro-profile.png │ │ │ └── service-image.png │ │ │ ├── brand-assets │ │ │ ├── assets │ │ │ │ ├── customer_app_icon.svg │ │ │ │ ├── customer_app_icon.zip │ │ │ │ ├── logomark_black.svg │ │ │ │ ├── logomark_black.zip │ │ │ │ ├── logomark_blue.svg │ │ │ │ ├── logomark_blue.zip │ │ │ │ ├── logomark_grey.svg │ │ │ │ ├── logomark_grey.zip │ │ │ │ ├── logotype.svg │ │ │ │ ├── logotype.zip │ │ │ │ ├── pro_app_icon.svg │ │ │ │ └── pro_app_icon.zip │ │ │ └── index.mdx │ │ │ ├── breakpoints │ │ │ └── index.mdx │ │ │ ├── color │ │ │ ├── 100-600-levels-blue.png │ │ │ ├── 100-600-levels-red.png │ │ │ ├── index.mdx │ │ │ ├── neutral-gray200.png │ │ │ ├── neutral-white.png │ │ │ ├── white-500-levels-green-bold.png │ │ │ └── white-500-levels-red.png │ │ │ ├── design-tokens │ │ │ ├── index.mdx │ │ │ └── tokens.png │ │ │ ├── iconography │ │ │ ├── icons │ │ │ │ ├── add--medium.svg │ │ │ │ ├── archive--medium.svg │ │ │ │ ├── audio--medium.svg │ │ │ │ ├── chart--medium.svg │ │ │ │ ├── date-placeholder--medium.svg │ │ │ │ ├── map--medium.svg │ │ │ │ ├── phone-call--medium.svg │ │ │ │ ├── phone-call--small.svg │ │ │ │ ├── phone-call--tiny.svg │ │ │ │ ├── share--medium.svg │ │ │ │ ├── sort--medium.svg │ │ │ │ ├── subtract--medium.svg │ │ │ │ ├── trash--medium.svg │ │ │ │ ├── upload--medium.svg │ │ │ │ └── video--medium.svg │ │ │ └── index.mdx │ │ │ ├── loaders │ │ │ ├── android-loader.gif │ │ │ ├── index.mdx │ │ │ └── ios-loader.gif │ │ │ ├── motion │ │ │ ├── app-store.gif │ │ │ ├── index.mdx │ │ │ └── transition-note.jpg │ │ │ ├── spacers │ │ │ ├── index.mdx │ │ │ ├── spacer-layout-1.png │ │ │ ├── spacer-layout-2.png │ │ │ └── spacer-layout-3.png │ │ │ ├── toolkits │ │ │ ├── index.mdx │ │ │ ├── toolkit-1.png │ │ │ ├── toolkit-2.png │ │ │ ├── toolkit-3.png │ │ │ └── toolkit-4.png │ │ │ ├── truncation │ │ │ ├── index.mdx │ │ │ ├── list.png │ │ │ ├── multiline.png │ │ │ └── read-more.png │ │ │ └── typography │ │ │ └── index.mdx │ │ ├── help │ │ ├── icon-github.svg │ │ ├── icon-slack.svg │ │ └── index.mdx │ │ ├── index.tsx │ │ ├── og-image.png │ │ └── updates │ │ └── notes │ │ ├── 2018-08-16.mdx │ │ ├── 2018-08-28.mdx │ │ ├── 2018-09-11.mdx │ │ ├── 2018-09-25.mdx │ │ ├── 2018-10-09.mdx │ │ ├── 2018-10-23.mdx │ │ ├── 2018-11-06.mdx │ │ ├── 2018-12-18.mdx │ │ ├── 2019-01-29.mdx │ │ ├── 2019-04-09.mdx │ │ ├── 2019-05-07.mdx │ │ ├── 2019-05-28.mdx │ │ ├── 2019-06-11.mdx │ │ ├── 2019-06-25.mdx │ │ ├── 2019-07-09.mdx │ │ ├── 2019-08-06.mdx │ │ ├── 2019-08-20.mdx │ │ ├── 2019-09-24.mdx │ │ ├── 2019-10-22.mdx │ │ ├── 2019-11-05.mdx │ │ ├── 2019-11-19.mdx │ │ ├── 2019-12-17.mdx │ │ ├── 2020-01-12.mdx │ │ ├── 2020-01-28.mdx │ │ ├── 2020-02-11.mdx │ │ ├── 2020-03-10.mdx │ │ ├── 2022-02-11.mdx │ │ ├── 2022-03-31.mdx │ │ ├── 2022-05-31.mdx │ │ ├── 2022-10-24.mdx │ │ ├── 2023-02-22.mdx │ │ ├── 2023-04-26.mdx │ │ └── index.mdx └── static │ ├── _redirects │ ├── favicon.ico │ └── img │ ├── Screen Shot 2019-12-10 at 8.30.23 AM.png │ ├── accessibility-illustration.svg │ ├── alert-banner-info.png │ ├── alert-banner-theme-caution.png │ ├── alert-banner-theme-info.png │ ├── alert-banner-theme-warning.png │ ├── android-avatar-sizes.png │ ├── android-avatar-without-images.png │ ├── android-icon-fab-styles.png │ ├── android-pill-themes.png │ ├── android-text-fab-styles.png │ ├── avatar-android-online-indicator.png │ ├── avatar-android-variations.png │ ├── button_anatomy.png │ ├── button_states.png │ ├── button_widths.png │ ├── calendar_height_modes.png │ ├── caution.png │ ├── chip-states.png │ ├── default.png │ ├── dropdown_default.png │ ├── dropdown_default_expanded.png │ ├── dropdown_disabled.png │ ├── dropdown_error.png │ ├── dropdown_error_expanded.png │ ├── dropdown_long_expanded.png │ ├── iconLeft.png │ ├── iconRight.png │ ├── ios-action-sheet.png │ ├── ios-alert.png │ ├── ios-buttonrow-emphasis.png │ ├── ios-buttonrow-equal.png │ ├── ios-buttonrow-minimal.png │ ├── ios-filter-chip.png │ ├── ios-navigation-bar-default.png │ ├── ios-navigation-bar-shadowless.png │ ├── ios-navigation-bar-transparent.png │ ├── ios-pill-themes.png │ ├── ios-text1.png │ ├── ios-text2.png │ ├── ios-text3.png │ ├── ios-title1.png │ ├── ios-title2.png │ ├── ios-title3.png │ ├── ios-title4.png │ ├── ios-title5.png │ ├── ios-title6.png │ ├── ios-title7.png │ ├── ios-title8.png │ ├── ios-toggle-chip.png │ ├── ios │ ├── avatar-online-now.png │ ├── avatar-variations.png │ ├── calendar.png │ ├── calendar_cell_aspect.png │ ├── calendar_cell_fixed.png │ ├── calendar_content_insets.png │ ├── calendar_date_selected.png │ ├── calendar_height_modes.png │ ├── calendar_multiple_selection.png │ ├── calendar_no_header.png │ ├── calendar_no_next.png │ ├── calendar_no_previous.png │ ├── calendar_slashes_dots.png │ ├── checkbox_checked.png │ ├── checkbox_disabled.png │ ├── checkbox_empty.png │ ├── checkbox_error.png │ ├── checkbox_intermediate.png │ ├── date_picker.png │ ├── dropdown.png │ ├── dropdown_disabled.png │ ├── dropdown_error.png │ ├── dropdown_highlighted.png │ ├── dropdown_options.png │ ├── dropdown_placeholder.png │ ├── icon_fab_primary.png │ ├── icon_fab_secondary.png │ ├── labelcheckbox_checked.png │ ├── labelcheckbox_disabled.png │ ├── labelcheckbox_empty.png │ ├── labelcheckbox_intermediate.png │ ├── labelcheckbox_left.png │ ├── labelcheckbox_multiline.png │ ├── shadowcard_default.png │ ├── shadowcard_highlighted.png │ ├── switch_off.png │ ├── switch_on.png │ ├── text_fab_primary.png │ ├── text_fab_secondary.png │ ├── textarea_disabled.png │ ├── textarea_error.png │ ├── textarea_highlighted.png │ ├── textarea_placeholder.png │ ├── textarea_text.png │ ├── textinput_default.png │ ├── textinput_disabled.png │ ├── textinput_error.png │ ├── textinput_highlighted.png │ ├── textinput_leftView.png │ └── textinput_placeholder.png │ ├── link.png │ ├── loading.png │ ├── native-text-area-states.png │ ├── native-text-input-states.png │ ├── overview │ ├── alert-banner.svg │ ├── alert.svg │ ├── avatar.svg │ ├── button-row.svg │ ├── button.svg │ ├── calendar.svg │ ├── carousel.svg │ ├── checkbox.svg │ ├── date-picker.svg │ ├── dropdown.svg │ ├── entity-avatar.svg │ ├── fab.svg │ ├── filter-chip.svg │ ├── form-note.svg │ ├── grid.svg │ ├── horizontal-rule.svg │ ├── image.svg │ ├── input-row.svg │ ├── label.svg │ ├── link.svg │ ├── list.svg │ ├── loader-dots.svg │ ├── modal.svg │ ├── pill.svg │ ├── popover.svg │ ├── radio.svg │ ├── service-card.svg │ ├── star-rating.svg │ ├── switch.svg │ ├── text-area.svg │ ├── text-input.svg │ ├── toast.svg │ ├── toggle-chip.svg │ ├── tooltip.svg │ ├── type.svg │ ├── user-avatar.svg │ └── wrap.svg │ ├── primary.png │ ├── secondary.png │ ├── small.png │ ├── solid.png │ ├── swiftui │ ├── alert-banner │ │ ├── tpAlertBanner-caution.png │ │ ├── tpAlertBanner-info.png │ │ └── tpAlertBanner-warning.png │ ├── avatar │ │ ├── tpavatar-example-1.png │ │ ├── tpavatar-example-2.png │ │ └── tpavatar-example-3.png │ ├── buttons │ │ ├── tpButton_default.png │ │ ├── tpButton_fullWidth_row.png │ │ ├── tpButton_secondary_small.png │ │ ├── tpButton_styles.png │ │ ├── tpButton_tertiary_fullWidth.png │ │ ├── tpIconButton_dark.png │ │ ├── tpIconButton_default.png │ │ └── tpRightIconButton.png │ ├── loader-dots │ │ ├── ld-brand-medium.png │ │ ├── ld-brand-small.png │ │ ├── ld-inverse-medium.png │ │ ├── ld-muted-medium.png │ │ └── ld-view.png │ ├── shadow-card │ │ ├── shadow-card-1.png │ │ └── shadow-card-2.png │ └── star-rating │ │ ├── star-rating-example-1.png │ │ └── star-rating-example-2.png │ ├── tertiary.png │ ├── text.png │ └── toast.png └── yarn.lock /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% in US 2 | last 2 versions 3 | ie 11 4 | not dead 5 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 16 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # These are `dist` files. They exist in the root of the `thumbprint-scss` folder so that consumers 2 | # importing these have short and easy to remember import paths. 3 | packages/thumbprint-scss/*.css 4 | packages/thumbprint-scss/*.css.map 5 | # Ignore `dist` files created by the Thumbprint documentation. 6 | www/public 7 | www/.cache 8 | # Prevent Yarn and Prettier from conflicting. 9 | package.json 10 | 11 | coverage 12 | yarn.lock 13 | dist 14 | tmp 15 | svg 16 | .git 17 | .cache 18 | 19 | next/.next 20 | -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | printWidth: 100 2 | tabWidth: 4 3 | trailingComma: all 4 | singleQuote: true 5 | proseWrap: never 6 | arrowParens: avoid 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // Prefer the locally-installed version of TypeScript to any that are installed globally, to 3 | // avoid issues with people installing different versions. 4 | "typescript.tsdk": "node_modules/typescript/lib", 5 | // Enable logging 6 | "typescript.tsserver.log": "verbose" 7 | } 8 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | 3 | yarnPath: .yarn/releases/yarn-3.2.1.cjs 4 | 5 | enableGlobalCache: true 6 | 7 | preferInteractive: true 8 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | /www/src/pages/components/*/ios/* @kevinmbeaulieu @danoc 2 | /www/src/pages/components/*/android/* @mallikapotter @danoc 3 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testMatch: ['/packages/**/?(*.)test.(j|t)s?(x)'], 3 | setupFilesAfterEnv: ['./jest.setup.js'], 4 | snapshotSerializers: ['enzyme-to-json/serializer'], 5 | moduleNameMapper: { 6 | '\\.(css|scss)$': 'identity-obj-proxy', 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /next/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | .pnpm-debug.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /next/components/alert/alert.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .children a { 4 | color: $tp-color__black-300; 5 | border-bottom: 1px solid $tp-color__gray; 6 | } 7 | -------------------------------------------------------------------------------- /next/components/anatomy/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .readingWidth { 4 | max-width: 580px; 5 | } 6 | 7 | .childen { 8 | list-style: none; 9 | 10 | li { 11 | padding-left: 0 !important; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /next/components/badge/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text } from '@thumbtack/thumbprint-react'; 3 | 4 | interface PropTypes { 5 | children: React.ReactNode; 6 | size?: 1 | 2 | 3; 7 | } 8 | 9 | export default function Badge({ size, children }: PropTypes): JSX.Element { 10 | return ( 11 | 15 | {children} 16 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /next/components/example-box/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | function ExampleBox({ children }: { children: React.ReactNode }): JSX.Element { 4 | return
{children}
; 5 | } 6 | 7 | export default ExampleBox; 8 | -------------------------------------------------------------------------------- /next/components/layout/layout.module.scss: -------------------------------------------------------------------------------- 1 | .container { 2 | display: flex; 3 | grid-template-columns: 256px 1fr; 4 | } 5 | 6 | .sidenav { 7 | box-shadow: 1px 0px 4px rgba(0, 0, 0, 0.1); 8 | } 9 | -------------------------------------------------------------------------------- /next/components/mdx/code-block/styles.ts: -------------------------------------------------------------------------------- 1 | import styles from './code-block.module.scss'; 2 | 3 | const previewThemes = { 4 | dark: 'bg-black b-black', 5 | light: 'bg-gray-200 b-gray-300', 6 | white: 'bg-white b-gray-300', 7 | }; 8 | 9 | const classes = { 10 | // Border color is defined by the theme above. 11 | preview: `pa4 mb1 ba bw-2 br2 ${styles.preview}`, 12 | codeContainer: `br2 bg-gray-200 mb4 ${styles.codeContainer}`, 13 | }; 14 | 15 | export { previewThemes, classes }; 16 | -------------------------------------------------------------------------------- /next/components/motion/general/banner/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | } 9 | 10 | .box { 11 | display: flex; 12 | align-items: center; 13 | position: absolute; 14 | transform: translateY(-100%); 15 | top: 0; 16 | left: 0; 17 | width: 100%; 18 | height: 60px; 19 | transition: transform 200ms cubic-bezier(0, 0, 0.4, 1); 20 | } 21 | 22 | .active { 23 | transform: translateY(0%); 24 | box-shadow: $tp-shadow__400; 25 | } 26 | 27 | .closeIcon { 28 | cursor: pointer; 29 | margin-left: auto; 30 | } 31 | -------------------------------------------------------------------------------- /next/components/motion/general/color/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | } 9 | 10 | .button { 11 | -webkit-appearance: none; 12 | border: none; 13 | outline: none; 14 | padding: 0; 15 | position: absolute; 16 | top: 0; 17 | left: 0; 18 | width: 100%; 19 | height: 100%; 20 | background: transparent; 21 | } 22 | 23 | .box { 24 | width: 80px; 25 | height: 80px; 26 | background: $tp-color__gray; 27 | border-radius: 3px; 28 | transition: background-color 200ms cubic-bezier(0, 0, 0.4, 1); 29 | } 30 | 31 | .active { 32 | background: $tp-color__blue; 33 | } 34 | -------------------------------------------------------------------------------- /next/components/motion/general/color/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | export default function Color(): JSX.Element { 7 | const [active, setActive] = useState(false); 8 | return ( 9 |
10 |
16 |
22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /next/components/motion/general/pop/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | const Pop = () => { 7 | const [active, setActive] = useState(false); 8 | return ( 9 |
10 |
16 |
18 | ); 19 | }; 20 | 21 | export default Pop; 22 | -------------------------------------------------------------------------------- /next/components/motion/general/scale/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Title, Text } from '@thumbtack/thumbprint-react'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | const Scale = () => { 7 | return ( 8 |
9 |
10 |
11 |
12 | Training 13 | 14 | Waitng for response 15 | 16 |
17 |
18 |
19 | ); 20 | }; 21 | 22 | export default Scale; 23 | -------------------------------------------------------------------------------- /next/components/motion/general/scale/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | } 9 | 10 | .box { 11 | transition: transform 200ms; 12 | } 13 | 14 | .box:hover { 15 | transform: scale(0.98); 16 | transition: transform 150ms cubic-bezier(0.5, 0, 1, 1); 17 | } 18 | 19 | .image { 20 | background: url(./training.jpg); 21 | background-size: 144%; 22 | background-position: right; 23 | height: 100px; 24 | } 25 | -------------------------------------------------------------------------------- /next/components/motion/general/scale/training.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/components/motion/general/scale/training.jpg -------------------------------------------------------------------------------- /next/components/motion/general/slide/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | const Slide = () => { 7 | const [active, setActive] = useState(false); 8 | return ( 9 |
10 |
16 |
17 |
18 |
20 | ); 21 | }; 22 | 23 | export default Slide; 24 | -------------------------------------------------------------------------------- /next/components/motion/page/android/full-page/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | } 6 | 7 | .box { 8 | @include box; 9 | position: absolute; 10 | left: 0; 11 | transform: scale(0.95); 12 | } 13 | 14 | .isActive { 15 | z-index: 1; 16 | transform: scale(1); 17 | transition: all 500ms; 18 | } 19 | 20 | .nav { 21 | height: 10%; 22 | position: absolute; 23 | top: 90%; 24 | z-index: 1; 25 | } 26 | 27 | .button { 28 | -webkit-appearance: none; 29 | border: none; 30 | padding: 0; 31 | outline: none; 32 | } 33 | -------------------------------------------------------------------------------- /next/components/motion/page/ios/full-screen-modal/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | import style from './index.module.scss'; 4 | 5 | const IosFullScreenModal = () => { 6 | const [active, setActive] = useState(false); 7 | return ( 8 | 19 | ); 20 | }; 21 | 22 | export default IosFullScreenModal; 23 | -------------------------------------------------------------------------------- /next/components/motion/page/ios/full-screen-modal/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | } 6 | 7 | .box { 8 | @include box; 9 | } 10 | 11 | .box2 { 12 | position: absolute; 13 | } 14 | 15 | .isActive .box2 { 16 | transform: translateY(-100%); 17 | } 18 | -------------------------------------------------------------------------------- /next/components/motion/page/ios/page-sheet/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | import style from './index.module.scss'; 4 | 5 | const IosPageSheet = () => { 6 | const [active, setActive] = useState(false); 7 | return ( 8 | 19 | ); 20 | }; 21 | 22 | export default IosPageSheet; 23 | -------------------------------------------------------------------------------- /next/components/motion/page/ios/page-sheet/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | transition: background 300ms 300ms; 6 | 7 | &.isActive { 8 | background: #333; 9 | transition: background 300ms; 10 | } 11 | } 12 | 13 | .box { 14 | @include box; 15 | } 16 | 17 | .box2 { 18 | position: absolute; 19 | } 20 | 21 | .isActive .box1 { 22 | opacity: 0.8; 23 | transform: scale(0.93); 24 | border-radius: 4px 4px 0 0; 25 | } 26 | 27 | .isActive .box2 { 28 | transform: translateY(-95%); 29 | } 30 | -------------------------------------------------------------------------------- /next/components/motion/page/push/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | } 6 | 7 | .box { 8 | @include box; 9 | } 10 | 11 | .wrap { 12 | transition: transform 500ms; 13 | } 14 | 15 | .isActive { 16 | transform: translateX(-100%); 17 | } 18 | -------------------------------------------------------------------------------- /next/components/motion/page/shared.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | @mixin root { 4 | width: 100%; 5 | height: 400px; 6 | overflow: hidden; 7 | position: relative; 8 | outline: none; 9 | -webkit-appearance: none; 10 | padding: 0; 11 | border: none; 12 | border-radius: 3px; 13 | box-shadow: $tp-shadow__300; 14 | } 15 | 16 | @mixin box { 17 | width: 100%; 18 | height: 100%; 19 | min-width: 100%; 20 | transition: all 500ms; 21 | display: flex; 22 | justify-content: center; 23 | align-items: center; 24 | font-size: 30px; 25 | font-weight: 700; 26 | } 27 | -------------------------------------------------------------------------------- /next/components/swatch/swatch.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Swatch({ value }: { value: string }): JSX.Element | null { 4 | const declaration = value; 5 | const styles = 'w1 h1 ml1 ml2 dib relative top-3'; 6 | 7 | if (declaration.includes('#')) { 8 | const hex = declaration.match(/#[a-zA-Z0-9]+/); 9 | return ; 10 | } 11 | 12 | return null; 13 | } 14 | -------------------------------------------------------------------------------- /next/components/tag/tag.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | const tagStyles = { 5 | letterSpacing: '0.5px', 6 | fontSize: '10px', 7 | textShadow: '1px 1px rgba(0,0,0,.2)', 8 | }; 9 | 10 | interface PropTypes { 11 | className?: string; 12 | type: 'deprecated' | 'required'; 13 | } 14 | 15 | export default function Tag({ type, className }: PropTypes): JSX.Element { 16 | return ( 17 | 24 | {type} 25 | 26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /next/components/thumbprint-atomic/get-classes/get-classes.tsx: -------------------------------------------------------------------------------- 1 | export interface CSSClass { 2 | media?: string; 3 | selectors: string[]; 4 | declarations: string[]; 5 | } 6 | 7 | export interface File { 8 | file: string; 9 | classes: CSSClass[]; 10 | } 11 | 12 | /** 13 | * Given the `props` and a `fileName` like `aspect-ratio`, return the array of classes that 14 | * correspond to that file. This function exists to simplify the Thumbprint Atomic MDX. 15 | */ 16 | const getClasses = (data: File[], fileName: string): File => { 17 | const d = data.find(i => { 18 | return i.file === `${fileName}.scss`; 19 | }); 20 | 21 | if (!d) { 22 | throw new Error(`getClasses failed on: ${fileName}`); 23 | } 24 | 25 | return d; 26 | }; 27 | 28 | export default getClasses; 29 | -------------------------------------------------------------------------------- /next/components/thumbprint-components/deprecated-component-alert/deprecated-component-alert.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Alert from '../../alert/alert'; 3 | 4 | const DeprecatedComponentAlert = ({ children }: { children: React.ReactNode }): JSX.Element => ( 5 | 6 | {children} 7 | 8 | ); 9 | export default DeprecatedComponentAlert; 10 | -------------------------------------------------------------------------------- /next/components/thumbprint-components/overview/overview.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .dot { 4 | width: 12px; 5 | height: 12px; 6 | border-radius: 50%; 7 | display: inline-block; 8 | } 9 | 10 | .dotDone { 11 | background: $tp-color__green; 12 | } 13 | 14 | .dotInProgress { 15 | border: 2px solid $tp-color__yellow; 16 | } 17 | 18 | .dotToDo { 19 | border: 2px solid $tp-color__blue; 20 | } 21 | 22 | .dotNotApplicable { 23 | background: $tp-color__gray; 24 | } 25 | 26 | .dotDeprecated { 27 | background: $tp-color__red-300; 28 | } 29 | -------------------------------------------------------------------------------- /next/components/thumbprint-components/props-table/component-definition.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This modifies the React Docgen types because we use `doctrine` to parse the description field. 3 | */ 4 | export type ComponentDefinition = DocgenComponentDefinition & { 5 | props: Record< 6 | string, 7 | DocgenComponentProps & { 8 | description: { 9 | description: string; 10 | tags: Array<{ title: string; description: string }>; 11 | }; 12 | } 13 | >; 14 | }; 15 | -------------------------------------------------------------------------------- /next/components/thumbprint-components/props-table/prop-type.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .unionPropType { 4 | list-style: disc; 5 | padding-left: $tp-space__4; 6 | } 7 | -------------------------------------------------------------------------------- /next/components/thumbprint-guide/swatch/index.module.scss: -------------------------------------------------------------------------------- 1 | .root { 2 | background-image: linear-gradient(45deg, #f2f2f2 25%, transparent 25%), 3 | linear-gradient(-45deg, #f2f2f2 25%, transparent 25%), 4 | linear-gradient(45deg, transparent 75%, #f2f2f2 75%), 5 | linear-gradient(-45deg, transparent 75%, #f2f2f2 75%); 6 | background-size: 16px 16px; 7 | background-position: 0 0, 0 8px, 8px -8px, -8px 0px; 8 | } 9 | -------------------------------------------------------------------------------- /next/components/thumbprint-www/featured/index.module.scss: -------------------------------------------------------------------------------- 1 | .shadow { 2 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1); 3 | } 4 | -------------------------------------------------------------------------------- /next/components/thumbprint-www/notices/index.module.scss: -------------------------------------------------------------------------------- 1 | .readingWidth { 2 | max-width: 580px; 3 | } 4 | -------------------------------------------------------------------------------- /next/components/wrap/wrap.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | @import '~@thumbtack/thumbprint-scss/mixins'; 3 | 4 | .wrap { 5 | max-width: 1024px; 6 | padding-left: $tp-space__4; 7 | padding-right: $tp-space__4; 8 | 9 | @include tp-respond-above($tp-breakpoint__large) { 10 | padding-left: 96px; 11 | padding-right: 96px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /next/components/wrap/wrap.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import styles from './wrap.module.scss'; 4 | 5 | interface PropTypes { 6 | children: React.ReactNode; 7 | hasPadding?: boolean; 8 | } 9 | 10 | export default function Wrap({ hasPadding = true, children }: PropTypes): JSX.Element { 11 | return ( 12 |
18 | {children} 19 |
20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /next/images/pages/components/avatar/android/online-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/android/online-indicator.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/android/sizes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/android/sizes.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/android/variations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/android/variations.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/android/without-images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/android/without-images.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/ios/online-now.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/ios/online-now.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/ios/variations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/ios/variations.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/swiftui/example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/swiftui/example-1.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/swiftui/example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/swiftui/example-2.png -------------------------------------------------------------------------------- /next/images/pages/components/avatar/swiftui/example-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/components/avatar/swiftui/example-3.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/avatar-customer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/avatar-customer.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/avatar-pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/avatar-pro.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/custom.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/customer-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/customer-review.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/embed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/embed.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/hero.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/portrait-size.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/portrait-size.jpg -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/pro-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/pro-profile.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/aspect-ratio/service-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/aspect-ratio/service-image.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/overiew/emphasis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/overiew/emphasis.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/overiew/interaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/overiew/interaction.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/overiew/usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/overiew/usage.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/blue.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/green.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/indigo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/indigo.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/neutral.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/purple.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/red.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/palette/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/palette/yellow.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/accent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/accent.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/alert.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/caution.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/guidance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/guidance.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/intro.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/neutral.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/primary.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/background/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/background/success.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/borders/guidance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/borders/guidance.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/borders/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/borders/intro.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/borders/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/borders/neutral.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/accent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/accent.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/alert.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/caution.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/guidance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/guidance.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/intro.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/neutral.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/primary.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/success.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/icons/usage-intro-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/icons/usage-intro-icon.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/accent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/accent.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/alert.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/caution.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/guidance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/guidance.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/intro.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/neutral.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/primary.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/color/usage/text/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/color/usage/text/success.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/design-tokens/tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/design-tokens/tokens.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/loaders/android-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/loaders/android-loader.gif -------------------------------------------------------------------------------- /next/images/pages/guide/product/loaders/ios-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/loaders/ios-loader.gif -------------------------------------------------------------------------------- /next/images/pages/guide/product/motion/app-store.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/motion/app-store.gif -------------------------------------------------------------------------------- /next/images/pages/guide/product/motion/transition-note.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/motion/transition-note.jpg -------------------------------------------------------------------------------- /next/images/pages/guide/product/spacers/spacer-layout-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/spacers/spacer-layout-1.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/spacers/spacer-layout-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/spacers/spacer-layout-2.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/spacers/spacer-layout-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/spacers/spacer-layout-3.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/toolkits/toolkit-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/toolkits/toolkit-1.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/toolkits/toolkit-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/toolkits/toolkit-2.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/toolkits/toolkit-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/toolkits/toolkit-3.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/toolkits/toolkit-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/toolkits/toolkit-4.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/truncation/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/truncation/list.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/truncation/multiline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/truncation/multiline.png -------------------------------------------------------------------------------- /next/images/pages/guide/product/truncation/read-more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/guide/product/truncation/read-more.png -------------------------------------------------------------------------------- /next/images/pages/icons/icon-hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/icons/icon-hero.png -------------------------------------------------------------------------------- /next/images/pages/overview/content-design/surfaces-and-elements/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/overview/content-design/surfaces-and-elements/email.png -------------------------------------------------------------------------------- /next/images/pages/overview/content-design/surfaces-and-elements/push.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/overview/content-design/surfaces-and-elements/push.png -------------------------------------------------------------------------------- /next/images/pages/overview/product-design/plugin-contrast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/images/pages/overview/product-design/plugin-contrast.png -------------------------------------------------------------------------------- /next/public/brand-assets/customer_app_icon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/brand-assets/customer_app_icon.zip -------------------------------------------------------------------------------- /next/public/brand-assets/logomark_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /next/public/brand-assets/logomark_black.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/brand-assets/logomark_black.zip -------------------------------------------------------------------------------- /next/public/brand-assets/logomark_blue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /next/public/brand-assets/logomark_blue.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/brand-assets/logomark_blue.zip -------------------------------------------------------------------------------- /next/public/brand-assets/logomark_grey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /next/public/brand-assets/logomark_grey.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/brand-assets/logomark_grey.zip -------------------------------------------------------------------------------- /next/public/brand-assets/logotype.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/brand-assets/logotype.zip -------------------------------------------------------------------------------- /next/public/brand-assets/pro_app_icon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/brand-assets/pro_app_icon.zip -------------------------------------------------------------------------------- /next/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/next/public/favicon.ico -------------------------------------------------------------------------------- /next/styles/global.scss: -------------------------------------------------------------------------------- 1 | $thumbprint-font-url: 'https://fonts.thumbtack.com/'; 2 | @import '~@thumbtack/thumbprint-font-face/_index.scss'; 3 | -------------------------------------------------------------------------------- /next/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "noEmit": true, 10 | "esModuleInterop": true, 11 | "module": "esnext", 12 | "moduleResolution": "node", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "jsx": "preserve", 16 | "incremental": true 17 | }, 18 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "../typings"], 19 | "exclude": ["node_modules"] 20 | } 21 | -------------------------------------------------------------------------------- /next/utils/component-page-props.ts: -------------------------------------------------------------------------------- 1 | import { SupportedEcosystems } from '../components/package-table/package-table'; 2 | import { ComponentDefinition } from '../components/thumbprint-components/props-table/component-definition'; 3 | 4 | export type PlatformName = 'usage' | 'react' | 'scss' | 'ios' | 'swiftui' | 'android'; 5 | 6 | export interface ComponentPageProps { 7 | id: string; 8 | platformId: string; 9 | componentPlatforms: { id: PlatformName; name: string }[]; 10 | packageTable: { 11 | name: string; 12 | version: string; 13 | sourceDirectory: string; 14 | ecosystem: SupportedEcosystems; 15 | // TODO 16 | // deprecated?: boolean; 17 | importStatement?: string; 18 | } | null; 19 | componentDocgens: ComponentDefinition[] | null; 20 | } 21 | -------------------------------------------------------------------------------- /next/utils/get-content-page-static-props.ts: -------------------------------------------------------------------------------- 1 | import getLayoutProps, { LayoutProps } from './get-layout-props'; 2 | 3 | /** 4 | * This is a helper to reduce the boilerplate involved in our content pages such as 5 | * `/overview/about` and `/guide/product/aspect-ratio`. 6 | */ 7 | export default function getContentPageStaticProps(): { props: { layoutProps: LayoutProps } } { 8 | return { 9 | props: { layoutProps: getLayoutProps() }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /packages/gatsby-source-coda/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@thumbtack/gatsby-source-coda", 3 | "version": "0.0.6", 4 | "private": true, 5 | "dependencies": { 6 | "node-fetch": "^2.6.0", 7 | "query-string": "^6.8.3" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/thumbprint-atomic/README.md: -------------------------------------------------------------------------------- 1 | # Thumbprint Atomic 2 | 3 | This package contains a library of atomic classes used for building layouts. It was based primarily on [Tachyons](https://tachyons.io/) with some syntax changes. 4 | 5 | This output of this package is a compiled CSS file. It can be included into a larger SCSS file or used as a standalone CSS file and should be the last file included. 6 | 7 | Full documentation including usage examples is available on the [Thumbprint](https://thumbprint.design/atomic/usage/) website. 8 | -------------------------------------------------------------------------------- /packages/thumbprint-atomic/src/packages/aspect-ratio.scss: -------------------------------------------------------------------------------- 1 | .aspect-ratio { 2 | height: 0 !important; 3 | position: relative !important; 4 | } 5 | 6 | .aspect-ratio-16x9 { 7 | padding-bottom: 56.25% !important; 8 | } 9 | 10 | .aspect-ratio-10x13 { 11 | padding-bottom: 130% !important; 12 | } 13 | 14 | .aspect-ratio-8x5 { 15 | padding-bottom: 62.5% !important; 16 | } 17 | 18 | .aspect-ratio-7x3 { 19 | padding-bottom: 42.86% !important; 20 | } 21 | 22 | .aspect-ratio-1x1 { 23 | padding-bottom: 100% !important; 24 | } 25 | 26 | .aspect-ratio-object { 27 | position: absolute !important; 28 | top: 0 !important; 29 | right: 0 !important; 30 | bottom: 0 !important; 31 | left: 0 !important; 32 | width: 100% !important; 33 | height: 100% !important; 34 | } 35 | -------------------------------------------------------------------------------- /packages/thumbprint-atomic/src/packages/cursor.scss: -------------------------------------------------------------------------------- 1 | .cursor-pointer { 2 | cursor: pointer !important; 3 | } 4 | -------------------------------------------------------------------------------- /packages/thumbprint-atomic/src/packages/z-index.scss: -------------------------------------------------------------------------------- 1 | .z-0 { 2 | z-index: 0 !important; 3 | } 4 | 5 | .z-1 { 6 | z-index: 1 !important; 7 | } 8 | 9 | .z-2 { 10 | z-index: 2 !important; 11 | } 12 | 13 | .z-3 { 14 | z-index: 3 !important; 15 | } 16 | 17 | .z-4 { 18 | z-index: 4 !important; 19 | } 20 | 21 | .z-5 { 22 | z-index: 5 !important; 23 | } 24 | 25 | .z-inherit { 26 | z-index: inherit !important; 27 | } 28 | 29 | .z-initial { 30 | z-index: initial !important; 31 | } 32 | 33 | .z-unset { 34 | z-index: unset !important; 35 | } 36 | -------------------------------------------------------------------------------- /packages/thumbprint-atomic/test.js: -------------------------------------------------------------------------------- 1 | const prettier = require('prettier'); 2 | const fs = require('fs'); 3 | 4 | it('compiles correctly', () => { 5 | const css = fs.readFileSync('packages/thumbprint-atomic/dist/atomic.css', 'utf-8'); 6 | // Format the CSS to make it easier to read the diff. 7 | const formattedCSS = prettier.format(css, { 8 | parser: 'css', 9 | }); 10 | 11 | expect(formattedCSS).toMatchSnapshot(); 12 | }); 13 | -------------------------------------------------------------------------------- /packages/thumbprint-codemods/src/avatar-import-name/index.js: -------------------------------------------------------------------------------- 1 | const renameImports = require('../../lib/rename-imports'); 2 | 3 | module.exports = (file, api) => { 4 | const j = api.jscodeshift; 5 | const ast = j(file.source); 6 | 7 | const res = renameImports(api, ast, { Avatar: 'UserAvatar' }); 8 | 9 | if (res === null) { 10 | return null; 11 | } 12 | 13 | return ast.toSource(); 14 | }; 15 | -------------------------------------------------------------------------------- /packages/thumbprint-font-face/README.md: -------------------------------------------------------------------------------- 1 | # Thumbprint Font Face 2 | 3 | Provides the `@font-face` CSS needed to render Thumbtack fonts. 4 | 5 | ## SCSS usage 6 | 7 | ```scss 8 | $thumbprint-font-url: '[SERVER URL HERE]'; 9 | @import '@thumbtack/thumbprint-font-face/_index'; 10 | ``` 11 | 12 | The `$thumbprint-font-url` is a variable required to complete the URL that points to the Thumbtack’s font files. If you need assistance contact the Design Systems team. 13 | -------------------------------------------------------------------------------- /packages/thumbprint-global-css/src/packages/a.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | a { 4 | color: $tp-color__blue; 5 | fill: $tp-color__blue; 6 | cursor: pointer; 7 | 8 | &:hover, 9 | &:active { 10 | color: $tp-color__blue; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/thumbprint-global-css/src/packages/body.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | body { 4 | color: $tp-color__black; 5 | font-family: $tp-font-family__base; 6 | font-size: $tp-font__body__1__size; 7 | line-height: $tp-line-height__base; 8 | -webkit-font-smoothing: antialiased; 9 | -moz-osx-font-smoothing: grayscale; 10 | } 11 | -------------------------------------------------------------------------------- /packages/thumbprint-global-css/src/thumbprint-global.scss: -------------------------------------------------------------------------------- 1 | @import 'packages/reset.scss'; 2 | @import 'packages/body.scss'; 3 | @import 'packages/a.scss'; 4 | -------------------------------------------------------------------------------- /packages/thumbprint-global-css/test.ts: -------------------------------------------------------------------------------- 1 | import prettier from 'prettier'; 2 | import fs from 'fs'; 3 | 4 | it('compiles correctly', () => { 5 | const css = fs.readFileSync( 6 | 'packages/thumbprint-global-css/dist/thumbprint-global.css', 7 | 'utf-8', 8 | ); 9 | // Format the CSS to make it easier to read the diff. 10 | const formattedCSS = prettier.format(css, { 11 | parser: 'css', 12 | }); 13 | 14 | expect(formattedCSS).toMatchSnapshot(); 15 | }); 16 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Avatar/subcomponents/badge.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .badge { 4 | color: $tp-color__white; 5 | position: absolute; 6 | border: 2px solid $tp-color__white; 7 | font-weight: 700; 8 | display: flex; 9 | justify-content: center; 10 | align-items: center; 11 | background-color: $tp-color__green; 12 | border-radius: $tp-border-radius__full; 13 | 14 | svg { 15 | fill: currentColor; 16 | width: 50%; 17 | height: 50%; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Carousel/base-carousel.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | overflow: hidden; 5 | } 6 | 7 | .wrapper { 8 | display: flex; 9 | position: relative; 10 | } 11 | 12 | .item { 13 | flex: none; 14 | } 15 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Chip/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .filterChip { 4 | flex: 0 0 auto; 5 | font-size: $tp-font__body__3__size; 6 | line-height: 18px; 7 | &Selected { 8 | border: 1px solid $tp-color__blue-100; 9 | color: $tp-color__blue; 10 | background-color: $tp-color__blue-100; 11 | } 12 | &NotSelected { 13 | border: 1px solid $tp-color__gray; 14 | color: $tp-color__blue; 15 | background-color: $tp-color__white; 16 | } 17 | } 18 | 19 | .contentContainer { 20 | display: flex; 21 | align-items: center; 22 | } 23 | 24 | .iconWrap { 25 | width: 14px; 26 | height: 14px; 27 | margin-right: $tp-space__2; 28 | overflow: hidden; 29 | } 30 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/FormNote/__snapshots__/test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`renders form note text 1`] = ` 4 | 5 |
8 | Goose 9 |
10 |
11 | `; 12 | 13 | exports[`renders form note with error 1`] = ` 14 | 17 |
20 | Goose 21 |
22 |
23 | `; 24 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/FormNote/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | font-size: $tp-font__body__3__size; 5 | color: $tp-color__black; 6 | } 7 | 8 | .rootError { 9 | color: $tp-color__red; 10 | } 11 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/FormNote/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import styles from './index.module.scss'; 4 | 5 | export interface FormNoteProps { 6 | /** 7 | * Text within the form note. 8 | */ 9 | children?: React.ReactNode; 10 | /** 11 | * Renders the form note as red text. 12 | */ 13 | hasError?: boolean; 14 | } 15 | 16 | export default function FormNote({ 17 | hasError = false, 18 | children = null, 19 | }: FormNoteProps): JSX.Element { 20 | return ( 21 |
{children}
22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/FormNote/test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { mount } from 'enzyme'; 3 | import FormNote from './index'; 4 | 5 | test('renders form note text', () => { 6 | const wrapper = mount(Goose); 7 | expect(wrapper.text()).toBe('Goose'); 8 | expect(wrapper).toMatchSnapshot(); 9 | }); 10 | 11 | test('renders form note with error', () => { 12 | const wrapper = mount(Goose); 13 | expect(wrapper).toMatchSnapshot(); 14 | }); 15 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/HorizontalRule/__snapshots__/test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`renders default horizontal rule 1`] = ` 4 | 5 |
8 |
9 | `; 10 | 11 | exports[`renders dotted horizontal rule 1`] = ` 12 | 15 |
18 |
19 | `; 20 | 21 | exports[`renders gray-300 horizontal rule 1`] = ` 22 | 25 |
28 |
29 | `; 30 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/HorizontalRule/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | border: 0; 5 | height: 0; 6 | border-top: 1px solid $tp-color__gray; 7 | margin-top: $tp-space__2 - 1px; 8 | margin-bottom: $tp-space__2; 9 | } 10 | 11 | .dotted { 12 | border-top-style: dotted; 13 | } 14 | 15 | .dashed { 16 | border-top-style: dashed; 17 | } 18 | 19 | .gray300 { 20 | border-top-color: $tp_color__gray-300; 21 | } 22 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/HorizontalRule/test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { mount } from 'enzyme'; 3 | import HorizontalRule from './index'; 4 | 5 | test('renders default horizontal rule', () => { 6 | const wrapper = mount(); 7 | expect(wrapper).toMatchSnapshot(); 8 | }); 9 | 10 | test('renders dotted horizontal rule', () => { 11 | const wrapper = mount(); 12 | expect(wrapper).toMatchSnapshot(); 13 | }); 14 | 15 | test('renders gray-300 horizontal rule', () => { 16 | const wrapper = mount(); 17 | expect(wrapper).toMatchSnapshot(); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Image/index.module.scss: -------------------------------------------------------------------------------- 1 | .picture { 2 | display: block; 3 | width: 100%; 4 | overflow: hidden; 5 | } 6 | 7 | .imageStart { 8 | display: block; 9 | width: 100%; 10 | opacity: 0; 11 | } 12 | 13 | .imageEnd { 14 | opacity: 1; 15 | } 16 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/InputRow/index.module.scss: -------------------------------------------------------------------------------- 1 | .root { 2 | display: flex; 3 | } 4 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Label/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .text { 4 | display: flex; 5 | align-items: center; 6 | font-weight: 700; 7 | font-size: $tp-font__body__1__size; 8 | line-height: $tp-font__body__1__line-height; 9 | margin-bottom: $tp-space__2; 10 | 11 | &UiState { 12 | &Disabled { 13 | color: $tp-color__gray; 14 | } 15 | 16 | &Error { 17 | color: $tp-color__red; 18 | } 19 | 20 | &Default { 21 | color: $tp-color__black; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/List/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | @import '~@thumbtack/thumbprint-scss/mixins'; 3 | 4 | .root { 5 | margin-left: $tp-space__4; 6 | } 7 | 8 | .bullet { 9 | list-style-type: disc; 10 | } 11 | 12 | .decimal { 13 | list-style-type: decimal; 14 | } 15 | 16 | .alpha { 17 | list-style-type: lower-alpha; 18 | } 19 | 20 | .item { 21 | padding-left: $tp-space__1; 22 | 23 | @include tp-respond-above($tp-breakpoint__small) { 24 | padding-left: 12px; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Modal/components/sticky-footer.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | @import '~@thumbtack/thumbprint-scss/mixins'; 3 | 4 | .root { 5 | border-top: 1px solid $tp-color__gray; 6 | margin-top: auto; 7 | padding: $tp-space__4 20px; 8 | } 9 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/ModalBase/_constants.scss: -------------------------------------------------------------------------------- 1 | // This value is duplicated in the JavaScript. 2 | $transition-speed: 500ms; 3 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/ModalBase/subcomponents/modal-contents/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../constants'; 2 | 3 | .modalContents { 4 | margin: auto; 5 | width: 100%; 6 | transform: translateY(-16px); 7 | } 8 | 9 | .modalContentsAnimated { 10 | transition: transform $transition-speed; 11 | } 12 | 13 | .modalContentsOpen { 14 | transform: translateY(0); 15 | } 16 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/ModalCurtain/components/no-scroll.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import noScroll from 'no-scroll'; 3 | 4 | export default class NoScroll extends React.Component { 5 | componentDidMount(): void { 6 | noScroll.on(); 7 | } 8 | 9 | componentWillUnmount(): void { 10 | noScroll.off(); 11 | } 12 | 13 | render(): null { 14 | return null; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/ModalCurtain/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | position: fixed; 5 | top: 0; 6 | right: 0; 7 | left: 0; 8 | bottom: 0; 9 | display: flex; 10 | flex-direction: column; 11 | opacity: 0; 12 | overflow: auto; 13 | visibility: hidden; 14 | z-index: $tp-z-index__modal; 15 | 16 | &Open { 17 | opacity: 1; 18 | visibility: visible; 19 | 20 | // Turn off the black flashing that happens on iOS when tapping on the curtain. This 21 | // happens when an `onClick` is added to an element in iOS. 22 | // https://stackoverflow.com/questions/6211959/html5-div-flashes-on-tap 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/ModalStandard/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | $close-button-height: 48px; 4 | 5 | .contents { 6 | background-color: $tp-color__gray-200; 7 | border-radius: $tp-border-radius__base; 8 | position: relative; 9 | min-height: $close-button-height; 10 | } 11 | 12 | .contentsBrand { 13 | background-color: #f27802; 14 | } 15 | 16 | .closeButton { 17 | position: absolute; 18 | top: 0; 19 | right: 0; 20 | height: $close-button-height; 21 | width: 48px; 22 | background: none; 23 | border: none; 24 | padding: 0; 25 | } 26 | 27 | .closeIcon { 28 | fill: $tp-color__black-300; 29 | vertical-align: middle; 30 | } 31 | 32 | .closeIconBrand { 33 | opacity: 0.5; 34 | } 35 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/UIAction/index.tsx: -------------------------------------------------------------------------------- 1 | export { default as Themed } from './themed'; 2 | export { default as Plain } from './plain'; 3 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/UIAction/is-thumbtack-url.ts: -------------------------------------------------------------------------------- 1 | import isString from 'lodash/isString'; 2 | /** 3 | * thumbtackDomainPattern should account for: 4 | * - http://*thumbtack.com 5 | * - https://*thumbtack.com 6 | * - //*thumbtack.com 7 | */ 8 | const thumbtackDomainPattern = /^(?:https?:)?\/\/(?:[a-zA-Z0-9-]+\.)*thumbtack\.com\//; 9 | const rootRelativeUrlPattern = /^\//; 10 | const hashUrlPattern = /^#/; 11 | /** 12 | * Check if a URL is an internal (TT.com) link 13 | */ 14 | const isThumbtackUrl = (url?: string): boolean => 15 | isString(url) && 16 | (thumbtackDomainPattern.test(url) || 17 | rootRelativeUrlPattern.test(url) || 18 | hashUrlPattern.test(url)); 19 | 20 | export default isThumbtackUrl; 21 | -------------------------------------------------------------------------------- /packages/thumbprint-react/components/Wrap/__snapshots__/test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`adds \`dataTest\` prop 1`] = ` 4 | 7 |
11 | goose 12 |
13 |
14 | `; 15 | 16 | exports[`renders content that is passed in 1`] = ` 17 | 18 |
21 | goose 22 |
23 |
24 | `; 25 | 26 | exports[`renders content that is passed in with a bleed breakpoint 1`] = ` 27 | 30 |
33 | goose 34 |
35 |
36 | `; 37 | -------------------------------------------------------------------------------- /packages/thumbprint-react/icons/alert-check.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const AlertCheck = props => ( 4 | 5 | 9 | 10 | ); 11 | 12 | AlertCheck.defaultProps = { 13 | xmlns: 'http://www.w3.org/2000/svg', 14 | fill: 'currentColor', 15 | width: '28', 16 | height: '28', 17 | viewBox: '0 0 28 28', 18 | }; 19 | 20 | export default AlertCheck; 21 | -------------------------------------------------------------------------------- /packages/thumbprint-react/icons/blocked-filled.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const BlockedFilled = props => ( 4 | 5 | {' '} 6 | 7 | ); 8 | 9 | BlockedFilled.defaultProps = { 10 | xmlns: 'http://www.w3.org/2000/svg', 11 | fill: 'currentColor', 12 | width: '28', 13 | height: '28', 14 | viewBox: '0 0 28 28', 15 | }; 16 | 17 | export default BlockedFilled; 18 | -------------------------------------------------------------------------------- /packages/thumbprint-react/icons/index.jsx: -------------------------------------------------------------------------------- 1 | export { default as AlertCheck } from './alert-check.jsx'; 2 | export { default as AlertInfo } from './alert-info.jsx'; 3 | export { default as AlertWarning } from './alert-warning.jsx'; 4 | export { default as BlockedFilled } from './blocked-filled.jsx'; 5 | export { default as InfoFilled } from './info-filled.jsx'; 6 | export { default as WarningFilled } from './warning-filled.jsx'; 7 | -------------------------------------------------------------------------------- /packages/thumbprint-react/utils/can-use-dom.ts: -------------------------------------------------------------------------------- 1 | // https://stackoverflow.com/a/32598826/316602 2 | const canUseDOM = !!( 3 | typeof window !== 'undefined' && 4 | window.document && 5 | window.document.createElement 6 | ); 7 | 8 | export default canUseDOM; 9 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/components.scss: -------------------------------------------------------------------------------- 1 | // Component scss 2 | @import 'scss/alert'; 3 | @import 'scss/avatar'; 4 | @import 'scss/button'; 5 | @import 'scss/button-row'; 6 | @import 'scss/checkbox'; 7 | @import 'scss/form-note'; 8 | @import 'scss/grid'; 9 | @import 'scss/hr'; 10 | @import 'scss/input'; 11 | @import 'scss/input-row'; 12 | @import 'scss/label'; 13 | @import 'scss/link'; 14 | @import 'scss/list'; 15 | @import 'scss/loader'; 16 | @import 'scss/longread'; 17 | @import 'scss/radio'; 18 | @import 'scss/select'; 19 | @import 'scss/textarea'; 20 | @import 'scss/type'; 21 | @import 'scss/wrap'; 22 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/mixins.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index.scss'; 2 | 3 | // Global mixins 4 | @import 'mixins/mixin'; 5 | 6 | // Component mixins 7 | @import 'mixins/avatar'; 8 | @import 'mixins/button'; 9 | @import 'mixins/link'; 10 | @import 'mixins/list'; 11 | @import 'mixins/longread'; 12 | @import 'mixins/type'; 13 | @import 'mixins/wrap'; 14 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/mixins/list.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index.scss'; 2 | @import '../mixins/mixin'; 3 | 4 | @mixin tp-list { 5 | margin-bottom: 12px; 6 | margin-left: $tp-space__4; 7 | 8 | > li { 9 | padding-left: $tp-space__1; 10 | 11 | @include tp-respond-above($tp-breakpoint__small) { 12 | padding-left: 12px; 13 | } 14 | } 15 | } 16 | 17 | @mixin tp-list--disc { 18 | list-style-type: disc; 19 | } 20 | 21 | @mixin tp-list--decimal { 22 | list-style-type: decimal; 23 | } 24 | 25 | @mixin tp-list--lower-alpha { 26 | list-style-type: lower-alpha; 27 | } 28 | 29 | @mixin tp-list--spaced { 30 | > li { 31 | margin-bottom: $tp-space__1; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/mixins/mixin.scss: -------------------------------------------------------------------------------- 1 | // Breakpoints 2 | // Use with: 3 | // 4 | // @include tp-respond-above($tp-breakpoint__medium) { 5 | // ...css here... 6 | // } 7 | // 8 | // @include tp-respond-above(300px) { 9 | // ...css here... 10 | // } 11 | 12 | @mixin tp-respond-between($min-width, $max-width) { 13 | @media (min-width: $min-width + 1) and (max-width: $max-width) { 14 | @content; 15 | } 16 | } 17 | 18 | @mixin tp-respond-above($width) { 19 | @media (min-width: $width + 1) { 20 | @content; 21 | } 22 | } 23 | 24 | @mixin tp-respond-below($width) { 25 | @media (max-width: $width) { 26 | @content; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/node-sass-importer.js: -------------------------------------------------------------------------------- 1 | const importer = require('node-sass-tilde-importer'); 2 | 3 | /** 4 | * This allows us to use the tilde import in Sass. It is supported out of the 5 | * box with the CSS loader in Webpack environments. This is a separate file 6 | * (rather than a command line argument) so that we can use Node to look up 7 | * the path to `node-sass-tilde-importer`. Otherwise, we'd have to use 8 | * `node-sass --importer=../../node_modules/node-sass-tilde-importer` which 9 | * could fail if Yarn decided not to hoist it to the project root. This could 10 | * happen if another package in this monorepo also used 11 | * `node-sass-tilde-importer` and both of the SemVer ranges didn't overlap. 12 | */ 13 | module.exports = importer; 14 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/scss/form-note.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index.scss'; 2 | 3 | .tp-form-note { 4 | margin-top: $tp-space__1; 5 | font-size: $tp-font__body__3__size; 6 | } 7 | 8 | .tp-form-note--bad-news { 9 | color: $tp-color__red; 10 | } 11 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/scss/hr.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index.scss'; 2 | 3 | .tp-rule { 4 | border: 0; 5 | height: 0; 6 | border-top: 1px solid $tp-color__gray; 7 | margin-top: $tp-space__2 - 1px; 8 | margin-bottom: $tp-space__2; 9 | 10 | &--dotted { 11 | border-top-style: dotted; 12 | } 13 | 14 | &--dashed { 15 | border-top-style: dashed; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/scss/label.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index.scss'; 2 | 3 | .tp-label { 4 | display: block; 5 | margin-bottom: $tp-space__1; 6 | font-weight: 700; 7 | 8 | &--bad-news { 9 | color: $tp-color__red; 10 | } 11 | 12 | &--disabled { 13 | color: $tp-color__gray; 14 | cursor: default !important; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/scss/list.scss: -------------------------------------------------------------------------------- 1 | @import '../mixins/list'; 2 | 3 | .tp-list { 4 | @include tp-list; 5 | 6 | &--disc { 7 | @include tp-list--disc; 8 | } 9 | 10 | &--decimal { 11 | @include tp-list--decimal; 12 | } 13 | 14 | &--lower-alpha { 15 | @include tp-list--lower-alpha; 16 | } 17 | 18 | &--spaced { 19 | @include tp-list--spaced; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/scss/longread.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index.scss'; 2 | @import '../mixins/longread'; 3 | 4 | .tp-longread { 5 | @include tp-longread; 6 | 7 | &--spacing { 8 | padding-top: 48px; 9 | padding-bottom: 48px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/scss/wrap.scss: -------------------------------------------------------------------------------- 1 | @import '../mixins/wrap'; 2 | 3 | .tp-wrap { 4 | @include tp-wrap; 5 | } 6 | 7 | // This is deprecated in favor of non-snapping wrappers. 8 | // @deprecated 9 | .tp-wrap-snap { 10 | @include tp-wrap-snap; 11 | } 12 | 13 | .tp-wrap--bleed-below-small { 14 | @include tp-wrap--bleed-below-small; 15 | } 16 | -------------------------------------------------------------------------------- /packages/thumbprint-scss/test.js: -------------------------------------------------------------------------------- 1 | const prettier = require('prettier'); 2 | const fs = require('fs'); 3 | 4 | it('compiles correctly', () => { 5 | const css = fs.readFileSync('packages/thumbprint-scss/components.css', 'utf-8'); 6 | // Format the CSS to make it easier to read the diff. 7 | const formattedCSS = prettier.format(css, { 8 | parser: 'css', 9 | }); 10 | 11 | expect(formattedCSS).toMatchSnapshot(); 12 | }); 13 | -------------------------------------------------------------------------------- /stylelint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['stylelint-config-recommended-scss', 'stylelint-config-prettier'], 3 | rules: { 4 | // Turned off due to false positives: 5 | // https://github.com/stylelint/stylelint/issues/2489 6 | 'no-descending-specificity': null, 7 | // `:global` is used for CSS modules 8 | // https://github.com/stylelint/stylelint/issues/2208#issuecomment-269245751 9 | 'selector-pseudo-class-no-unknown': [ 10 | true, 11 | { 12 | ignorePseudoClasses: ['global'], 13 | }, 14 | ], 15 | }, 16 | }; 17 | -------------------------------------------------------------------------------- /www/.eslintrc.js: -------------------------------------------------------------------------------- 1 | ../.eslintrc.js -------------------------------------------------------------------------------- /www/.gitignore: -------------------------------------------------------------------------------- 1 | .cache/ 2 | public/ 3 | -------------------------------------------------------------------------------- /www/plugins/gatsby-source-coda: -------------------------------------------------------------------------------- 1 | ../../packages/gatsby-source-coda -------------------------------------------------------------------------------- /www/plugins/gatsby-transformer-thumbprint-atomic: -------------------------------------------------------------------------------- 1 | ../../packages/gatsby-transformer-thumbprint-atomic -------------------------------------------------------------------------------- /www/plugins/gatsby-transformer-thumbprint-components: -------------------------------------------------------------------------------- 1 | ../../packages/gatsby-transformer-thumbprint-components -------------------------------------------------------------------------------- /www/plugins/gatsby-transformer-thumbprint-tokens: -------------------------------------------------------------------------------- 1 | ../../packages/gatsby-transformer-thumbprint-tokens -------------------------------------------------------------------------------- /www/postcss.config.js: -------------------------------------------------------------------------------- 1 | const postcssImport = require('postcss-import'); 2 | 3 | module.exports = () => ({ 4 | plugins: [postcssImport()], 5 | }); 6 | -------------------------------------------------------------------------------- /www/src/components/alert/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .children a { 4 | color: $tp-color__black-300; 5 | border-bottom: 1px solid $tp-color__gray; 6 | } 7 | -------------------------------------------------------------------------------- /www/src/components/anatomy/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .readingWidth { 4 | max-width: 580px; 5 | } 6 | 7 | .childen { 8 | list-style: none; 9 | 10 | li { 11 | padding-left: 0 !important; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /www/src/components/badge/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text } from '@thumbtack/thumbprint-react'; 3 | 4 | interface PropTypes { 5 | children: React.ReactNode; 6 | size?: 1 | 2 | 3; 7 | } 8 | 9 | export default function Badge({ size, children }: PropTypes): JSX.Element { 10 | return ( 11 | 15 | {children} 16 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /www/src/components/container/index.module.scss: -------------------------------------------------------------------------------- 1 | $thumbprint-font-url: 'https://fonts.thumbtack.com/'; 2 | @import '~@thumbtack/thumbprint-font-face/_index.scss'; 3 | 4 | .container { 5 | display: flex; 6 | grid-template-columns: 256px 1fr; 7 | } 8 | 9 | .sidenav { 10 | box-shadow: 1px 0px 4px rgba(0, 0, 0, 0.1); 11 | } 12 | -------------------------------------------------------------------------------- /www/src/components/mdx/code-block/styles.ts: -------------------------------------------------------------------------------- 1 | import styles from './index.module.scss'; 2 | 3 | const previewThemes = { 4 | dark: 'bg-black b-black', 5 | light: 'bg-gray-200 b-gray-300', 6 | white: 'bg-white b-gray-300', 7 | }; 8 | 9 | const classes = { 10 | // Border color is defined by the theme above. 11 | preview: `pa4 mb1 ba bw-2 br2 ${styles.preview}`, 12 | codeContainer: `br2 bg-gray-200 mb4 ${styles.codeContainer}`, 13 | }; 14 | 15 | export { previewThemes, classes }; 16 | -------------------------------------------------------------------------------- /www/src/components/motion/general/banner/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | } 9 | 10 | .box { 11 | display: flex; 12 | align-items: center; 13 | position: absolute; 14 | transform: translateY(-100%); 15 | top: 0; 16 | left: 0; 17 | width: 100%; 18 | height: 60px; 19 | transition: transform 200ms cubic-bezier(0, 0, 0.4, 1); 20 | } 21 | 22 | .active { 23 | transform: translateY(0%); 24 | box-shadow: $tp-shadow__400; 25 | } 26 | 27 | .closeIcon { 28 | cursor: pointer; 29 | margin-left: auto; 30 | } 31 | -------------------------------------------------------------------------------- /www/src/components/motion/general/color/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | } 9 | 10 | .button { 11 | -webkit-appearance: none; 12 | border: none; 13 | outline: none; 14 | padding: 0; 15 | position: absolute; 16 | top: 0; 17 | left: 0; 18 | width: 100%; 19 | height: 100%; 20 | background: transparent; 21 | } 22 | 23 | .box { 24 | width: 80px; 25 | height: 80px; 26 | background: $tp-color__gray; 27 | border-radius: 3px; 28 | transition: background-color 200ms cubic-bezier(0, 0, 0.4, 1); 29 | } 30 | 31 | .active { 32 | background: $tp-color__blue; 33 | } 34 | -------------------------------------------------------------------------------- /www/src/components/motion/general/color/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | export default function Color(): JSX.Element { 7 | const [active, setActive] = useState(false); 8 | return ( 9 |
10 |
16 |
22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /www/src/components/motion/general/pop/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | const Pop = () => { 7 | const [active, setActive] = useState(false); 8 | return ( 9 |
10 |
16 |
18 | ); 19 | }; 20 | 21 | export default Pop; 22 | -------------------------------------------------------------------------------- /www/src/components/motion/general/scale/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Title, Text } from '@thumbtack/thumbprint-react'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | const Scale = () => { 7 | return ( 8 |
9 |
10 |
11 |
12 | Training 13 | 14 | Waitng for response 15 | 16 |
17 |
18 |
19 | ); 20 | }; 21 | 22 | export default Scale; 23 | -------------------------------------------------------------------------------- /www/src/components/motion/general/scale/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .root { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | height: 100%; 8 | } 9 | 10 | .box { 11 | transition: transform 200ms; 12 | } 13 | 14 | .box:hover { 15 | transform: scale(0.98); 16 | transition: transform 150ms cubic-bezier(0.5, 0, 1, 1); 17 | } 18 | 19 | .image { 20 | background: url(./training.jpg); 21 | background-size: 144%; 22 | background-position: right; 23 | height: 100px; 24 | } 25 | -------------------------------------------------------------------------------- /www/src/components/motion/general/scale/training.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/components/motion/general/scale/training.jpg -------------------------------------------------------------------------------- /www/src/components/motion/general/slide/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | import styles from './index.module.scss'; 5 | 6 | const Slide = () => { 7 | const [active, setActive] = useState(false); 8 | return ( 9 |
10 |
16 |
17 |
18 |
20 | ); 21 | }; 22 | 23 | export default Slide; 24 | -------------------------------------------------------------------------------- /www/src/components/motion/page/android/full-page/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | } 6 | 7 | .box { 8 | @include box; 9 | position: absolute; 10 | left: 0; 11 | transform: scale(0.95); 12 | } 13 | 14 | .isActive { 15 | z-index: 1; 16 | transform: scale(1); 17 | transition: all 500ms; 18 | } 19 | 20 | .nav { 21 | height: 10%; 22 | position: absolute; 23 | top: 90%; 24 | z-index: 1; 25 | } 26 | 27 | .button { 28 | -webkit-appearance: none; 29 | border: none; 30 | padding: 0; 31 | outline: none; 32 | } 33 | -------------------------------------------------------------------------------- /www/src/components/motion/page/ios/full-screen-modal/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | import style from './index.module.scss'; 4 | 5 | const IosFullScreenModal = () => { 6 | const [active, setActive] = useState(false); 7 | return ( 8 | 19 | ); 20 | }; 21 | 22 | export default IosFullScreenModal; 23 | -------------------------------------------------------------------------------- /www/src/components/motion/page/ios/full-screen-modal/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | } 6 | 7 | .box { 8 | @include box; 9 | } 10 | 11 | .box2 { 12 | position: absolute; 13 | } 14 | 15 | .isActive .box2 { 16 | transform: translateY(-100%); 17 | } 18 | -------------------------------------------------------------------------------- /www/src/components/motion/page/ios/page-sheet/index.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import classNames from 'classnames'; 3 | import style from './index.module.scss'; 4 | 5 | const IosPageSheet = () => { 6 | const [active, setActive] = useState(false); 7 | return ( 8 | 19 | ); 20 | }; 21 | 22 | export default IosPageSheet; 23 | -------------------------------------------------------------------------------- /www/src/components/motion/page/ios/page-sheet/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | transition: background 300ms 300ms; 6 | 7 | &.isActive { 8 | background: #333; 9 | transition: background 300ms; 10 | } 11 | } 12 | 13 | .box { 14 | @include box; 15 | } 16 | 17 | .box2 { 18 | position: absolute; 19 | } 20 | 21 | .isActive .box1 { 22 | opacity: 0.8; 23 | transform: scale(0.93); 24 | border-radius: 4px 4px 0 0; 25 | } 26 | 27 | .isActive .box2 { 28 | transform: translateY(-95%); 29 | } 30 | -------------------------------------------------------------------------------- /www/src/components/motion/page/push/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '../shared.scss'; 2 | 3 | .root { 4 | @include root; 5 | } 6 | 7 | .box { 8 | @include box; 9 | } 10 | 11 | .wrap { 12 | transition: transform 500ms; 13 | } 14 | 15 | .isActive { 16 | transform: translateX(-100%); 17 | } 18 | -------------------------------------------------------------------------------- /www/src/components/motion/page/shared.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | @mixin root { 4 | width: 100%; 5 | height: 400px; 6 | overflow: hidden; 7 | position: relative; 8 | outline: none; 9 | -webkit-appearance: none; 10 | padding: 0; 11 | border: none; 12 | border-radius: 3px; 13 | box-shadow: $tp-shadow__300; 14 | } 15 | 16 | @mixin box { 17 | width: 100%; 18 | height: 100%; 19 | min-width: 100%; 20 | transition: all 500ms; 21 | display: flex; 22 | justify-content: center; 23 | align-items: center; 24 | font-size: 30px; 25 | font-weight: 700; 26 | } 27 | -------------------------------------------------------------------------------- /www/src/components/swatch/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Swatch({ value }: { value: string }): JSX.Element | null { 4 | const declaration = value; 5 | const styles = 'w1 h1 ml1 ml2 dib relative top-3'; 6 | 7 | if (declaration.includes('#')) { 8 | const hex = declaration.match(/#[a-zA-Z0-9]+/); 9 | return ; 10 | } 11 | 12 | return null; 13 | } 14 | -------------------------------------------------------------------------------- /www/src/components/tag/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | 4 | const tagStyles = { 5 | letterSpacing: '0.5px', 6 | fontSize: '10px', 7 | textShadow: '1px 1px rgba(0,0,0,.2)', 8 | }; 9 | 10 | interface PropTypes { 11 | className?: string; 12 | type: 'deprecated' | 'required'; 13 | } 14 | 15 | export default function Tag({ type, className }: PropTypes): JSX.Element { 16 | return ( 17 | 24 | {type} 25 | 26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /www/src/components/thumbprint-components/component-footer/prop-type.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .unionPropType { 4 | list-style: disc; 5 | padding-left: $tp-space__4; 6 | } 7 | -------------------------------------------------------------------------------- /www/src/components/thumbprint-components/deprecated-component-alert/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import Alert from '../../alert'; 4 | 5 | const DeprecatedComponentAlert = ({ children }) => ( 6 | 7 | {children} 8 | 9 | ); 10 | 11 | DeprecatedComponentAlert.propTypes = { 12 | children: PropTypes.node.isRequired, 13 | }; 14 | 15 | export default DeprecatedComponentAlert; 16 | -------------------------------------------------------------------------------- /www/src/components/thumbprint-components/overview/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | 3 | .dot { 4 | width: 12px; 5 | height: 12px; 6 | border-radius: 50%; 7 | display: inline-block; 8 | } 9 | 10 | .dotDone { 11 | background: $tp-color__green; 12 | } 13 | 14 | .dotInProgress { 15 | border: 2px solid $tp-color__yellow; 16 | } 17 | 18 | .dotToDo { 19 | border: 2px solid $tp-color__blue; 20 | } 21 | 22 | .dotNotApplicable { 23 | background: $tp-color__gray; 24 | } 25 | 26 | .dotDeprecated { 27 | background: $tp-color__red-300; 28 | } 29 | -------------------------------------------------------------------------------- /www/src/components/thumbprint-guide/swatch/index.module.scss: -------------------------------------------------------------------------------- 1 | .root { 2 | background-image: linear-gradient(45deg, #f2f2f2 25%, transparent 25%), 3 | linear-gradient(-45deg, #f2f2f2 25%, transparent 25%), 4 | linear-gradient(45deg, transparent 75%, #f2f2f2 75%), 5 | linear-gradient(-45deg, transparent 75%, #f2f2f2 75%); 6 | background-size: 16px 16px; 7 | background-position: 0 0, 0 8px, 8px -8px, -8px 0px; 8 | } 9 | -------------------------------------------------------------------------------- /www/src/components/thumbprint-www/featured/index.module.scss: -------------------------------------------------------------------------------- 1 | .shadow { 2 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1); 3 | } 4 | -------------------------------------------------------------------------------- /www/src/components/thumbprint-www/notices/index.module.scss: -------------------------------------------------------------------------------- 1 | .readingWidth { 2 | max-width: 580px; 3 | } 4 | -------------------------------------------------------------------------------- /www/src/components/usage-img/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | interface PropTypes { 4 | children: React.ReactNode; 5 | } 6 | 7 | export default function UsageImg({ children }: PropTypes): JSX.Element { 8 | return
{children}
; 9 | } 10 | -------------------------------------------------------------------------------- /www/src/components/wrap/index.module.scss: -------------------------------------------------------------------------------- 1 | @import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; 2 | @import '~@thumbtack/thumbprint-scss/mixins'; 3 | 4 | .wrap { 5 | max-width: 1024px; 6 | padding-left: $tp-space__4; 7 | padding-right: $tp-space__4; 8 | 9 | @include tp-respond-above($tp-breakpoint__large) { 10 | padding-left: 96px; 11 | padding-right: 96px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /www/src/components/wrap/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import classNames from 'classnames'; 3 | import styles from './index.module.scss'; 4 | 5 | interface PropTypes { 6 | children: React.ReactNode; 7 | hasPadding?: boolean; 8 | } 9 | 10 | export default function Wrap({ hasPadding = true, children }: PropTypes): JSX.Element { 11 | return ( 12 |
18 | {children} 19 |
20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /www/src/pages/components/alert-banner/usage/alertbanner-cta-do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/alert-banner/usage/alertbanner-cta-do.png -------------------------------------------------------------------------------- /www/src/pages/components/alert-banner/usage/alertbanner-cta-dont.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/alert-banner/usage/alertbanner-cta-dont.png -------------------------------------------------------------------------------- /www/src/pages/components/alert-banner/usage/alertbanner-do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/alert-banner/usage/alertbanner-do.png -------------------------------------------------------------------------------- /www/src/pages/components/alert-banner/usage/alertbanner-dont.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/alert-banner/usage/alertbanner-dont.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/anatomy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/anatomy.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-do-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-do-1.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-do-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-do-2.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-do-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-do-3.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-do-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-do-4.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-do-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-do-5.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-dont-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-dont-1.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-dont-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-dont-2.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-dont-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-dont-3.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-dont-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-dont-4.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/best-practices-dont-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/best-practices-dont-5.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/color-caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/color-caution.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/color-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/color-primary.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/color-secondary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/color-secondary.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/color-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/color-solid.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/color-tertiary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/color-tertiary.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/spacing-large-100-perc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/spacing-large-100-perc.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/spacing-large-auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/spacing-large-auto.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/spacing-small-auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/spacing-small-auto.png -------------------------------------------------------------------------------- /www/src/pages/components/button/usage/specs-sizing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/button/usage/specs-sizing.png -------------------------------------------------------------------------------- /www/src/pages/components/carousel/ios/carousel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/carousel/ios/carousel.gif -------------------------------------------------------------------------------- /www/src/pages/components/grid/usage/grid-browser-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/grid/usage/grid-browser-2.png -------------------------------------------------------------------------------- /www/src/pages/components/grid/usage/grid-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/grid/usage/grid-browser.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/anatomy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/anatomy.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/do-subtle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/do-subtle.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/do-text-separation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/do-text-separation.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/dont-hard-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/dont-hard-line.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/dont-high-contrast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/dont-high-contrast.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/specs-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/specs-color.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/specs-sizing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/specs-sizing.png -------------------------------------------------------------------------------- /www/src/pages/components/horizontal-rule/usage/specs-spacing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/horizontal-rule/usage/specs-spacing.png -------------------------------------------------------------------------------- /www/src/pages/components/loader-dots/ios/ios-loaderdots-brand-medium.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/loader-dots/ios/ios-loaderdots-brand-medium.gif -------------------------------------------------------------------------------- /www/src/pages/components/loader-dots/ios/ios-loaderdots-brand-small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/loader-dots/ios/ios-loaderdots-brand-small.gif -------------------------------------------------------------------------------- /www/src/pages/components/loader-dots/ios/ios-loaderdots-inverse-medium.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/loader-dots/ios/ios-loaderdots-inverse-medium.gif -------------------------------------------------------------------------------- /www/src/pages/components/loader-dots/ios/ios-loaderdots-muted-medium.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/loader-dots/ios/ios-loaderdots-muted-medium.gif -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-anatomy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-anatomy.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-announce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-announce.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-break-1-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-break-1-red.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-break-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-break-1.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-break-2-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-break-2-red.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-break-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-break-2.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-do.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-dont.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-dont.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-result.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-size-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-size-1.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-size-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-size-2.png -------------------------------------------------------------------------------- /www/src/pages/components/modal/usage/modal-trigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/modal/usage/modal-trigger.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/anatomy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/anatomy.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/pill-do-a11y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/pill-do-a11y.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/pill-do-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/pill-do-icons.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/pill-dont-a11y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/pill-dont-a11y.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/pill-dont-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/pill-dont-icons.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/specs-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/specs-color.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/specs-sizing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/specs-sizing.png -------------------------------------------------------------------------------- /www/src/pages/components/pill/usage/specs-spacing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/pill/usage/specs-spacing.png -------------------------------------------------------------------------------- /www/src/pages/components/radio/ios/contentPlacementLeadingLTR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/radio/ios/contentPlacementLeadingLTR.png -------------------------------------------------------------------------------- /www/src/pages/components/radio/ios/contentPlacementTrailingLTR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/radio/ios/contentPlacementTrailingLTR.png -------------------------------------------------------------------------------- /www/src/pages/components/radio/ios/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/radio/ios/default.png -------------------------------------------------------------------------------- /www/src/pages/components/radio/ios/deselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/radio/ios/deselected.png -------------------------------------------------------------------------------- /www/src/pages/components/radio/ios/disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/radio/ios/disabled.png -------------------------------------------------------------------------------- /www/src/pages/components/service-card/usage/service-card-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/service-card/usage/service-card-icon.png -------------------------------------------------------------------------------- /www/src/pages/components/service-card/usage/service-card-layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/service-card/usage/service-card-layout.png -------------------------------------------------------------------------------- /www/src/pages/components/service-card/usage/service-card-max-width.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/service-card/usage/service-card-max-width.png -------------------------------------------------------------------------------- /www/src/pages/components/service-card/usage/service-card-min-width.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/service-card/usage/service-card-min-width.png -------------------------------------------------------------------------------- /www/src/pages/components/service-card/usage/service-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/service-card/usage/service-card.png -------------------------------------------------------------------------------- /www/src/pages/components/toast/ios/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/toast/ios/alert.png -------------------------------------------------------------------------------- /www/src/pages/components/toast/ios/custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/toast/ios/custom.png -------------------------------------------------------------------------------- /www/src/pages/components/toast/ios/toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/toast/ios/toast.png -------------------------------------------------------------------------------- /www/src/pages/components/toast/swiftui/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/toast/swiftui/alert.png -------------------------------------------------------------------------------- /www/src/pages/components/toast/swiftui/thumbprintui_toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/toast/swiftui/thumbprintui_toast.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/bottom.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/dark.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/default-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/default-2.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/default.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/do-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/do-1.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/do-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/do-2.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/dont-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/dont-1.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/dont-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/dont-2.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/dont-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/dont-3.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/light.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/side.png -------------------------------------------------------------------------------- /www/src/pages/components/tooltip/usage/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/tooltip/usage/top.png -------------------------------------------------------------------------------- /www/src/pages/components/wrap/usage/grid-browser-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/wrap/usage/grid-browser-2.png -------------------------------------------------------------------------------- /www/src/pages/components/wrap/usage/grid-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/components/wrap/usage/grid-browser.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/avatar-customer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/avatar-customer.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/avatar-pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/avatar-pro.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/custom.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/customer-review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/customer-review.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/embed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/embed.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/hero.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/portrait-size.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/portrait-size.jpg -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/pro-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/pro-profile.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/aspect-ratio/service-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/aspect-ratio/service-image.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/customer_app_icon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/brand-assets/assets/customer_app_icon.zip -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logomark_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logomark_black.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/brand-assets/assets/logomark_black.zip -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logomark_blue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logomark_blue.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/brand-assets/assets/logomark_blue.zip -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logomark_grey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logomark_grey.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/brand-assets/assets/logomark_grey.zip -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/logotype.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/brand-assets/assets/logotype.zip -------------------------------------------------------------------------------- /www/src/pages/guide/product/brand-assets/assets/pro_app_icon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/brand-assets/assets/pro_app_icon.zip -------------------------------------------------------------------------------- /www/src/pages/guide/product/color/100-600-levels-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/color/100-600-levels-blue.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/color/100-600-levels-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/color/100-600-levels-red.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/color/neutral-gray200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/color/neutral-gray200.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/color/neutral-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/color/neutral-white.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/color/white-500-levels-green-bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/color/white-500-levels-green-bold.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/color/white-500-levels-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/color/white-500-levels-red.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/design-tokens/tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/design-tokens/tokens.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/add--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/archive--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/audio--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/chart--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/date-placeholder--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/map--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/phone-call--small.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/share--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/sort--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/subtract--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/trash--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/upload--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/iconography/icons/video--medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/src/pages/guide/product/loaders/android-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/loaders/android-loader.gif -------------------------------------------------------------------------------- /www/src/pages/guide/product/loaders/ios-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/loaders/ios-loader.gif -------------------------------------------------------------------------------- /www/src/pages/guide/product/motion/app-store.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/motion/app-store.gif -------------------------------------------------------------------------------- /www/src/pages/guide/product/motion/transition-note.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/motion/transition-note.jpg -------------------------------------------------------------------------------- /www/src/pages/guide/product/spacers/spacer-layout-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/spacers/spacer-layout-1.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/spacers/spacer-layout-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/spacers/spacer-layout-2.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/spacers/spacer-layout-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/spacers/spacer-layout-3.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/toolkits/toolkit-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/toolkits/toolkit-1.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/toolkits/toolkit-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/toolkits/toolkit-2.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/toolkits/toolkit-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/toolkits/toolkit-3.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/toolkits/toolkit-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/toolkits/toolkit-4.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/truncation/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/truncation/list.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/truncation/multiline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/truncation/multiline.png -------------------------------------------------------------------------------- /www/src/pages/guide/product/truncation/read-more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/guide/product/truncation/read-more.png -------------------------------------------------------------------------------- /www/src/pages/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/src/pages/og-image.png -------------------------------------------------------------------------------- /www/src/pages/updates/notes/2018-09-11.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: September 11, 2018 3 | --- 4 | 5 | ## 🍭 Design 6 | 7 | - The Avatar Toolkit designs are complete. 8 | - A slighly revised extended color palette is nearly completed. 9 | 10 | ## 💾 API 11 | 12 | - [Thumbprint Atomic](https://thumbprint.design/atomic/) has been released. 13 | - We are working with the Growth team to integrate the Image Toolkit with the Image Service. 14 | - Carousels are in active development. 15 | - Global Footer changes in `website` are in review. 16 | - We're working with Kazu and Prachi to help them build an image gallery modal. 17 | -------------------------------------------------------------------------------- /www/src/pages/updates/notes/2020-02-11.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: February 11, 2020 3 | --- 4 | 5 | ## 📦 Components 6 | 7 | - A rethinking of Modals for all platforms is in the works, with an API review coming shortly. (Lucas S.) 8 | 9 | ## 🍭 Design 10 | 11 | - Email reviews are continuing this week as we get closer to final designs (Jon K.) 12 | - Jon K. and Lucas S. both spoke last week at Config, Figma's first design conference. We'll send out videos when they become available. 13 | 14 | ## 📖 Documentation 15 | 16 | - The technical work to enable email documentation is in place while initial component build-out and testing continues. (Daniel O., Tom G.) 17 | - Work continues on the Thumbprint component adoption tracking project. (Daniel O.) 18 | -------------------------------------------------------------------------------- /www/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/favicon.ico -------------------------------------------------------------------------------- /www/static/img/Screen Shot 2019-12-10 at 8.30.23 AM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/Screen Shot 2019-12-10 at 8.30.23 AM.png -------------------------------------------------------------------------------- /www/static/img/alert-banner-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/alert-banner-info.png -------------------------------------------------------------------------------- /www/static/img/alert-banner-theme-caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/alert-banner-theme-caution.png -------------------------------------------------------------------------------- /www/static/img/alert-banner-theme-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/alert-banner-theme-info.png -------------------------------------------------------------------------------- /www/static/img/alert-banner-theme-warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/alert-banner-theme-warning.png -------------------------------------------------------------------------------- /www/static/img/android-avatar-sizes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/android-avatar-sizes.png -------------------------------------------------------------------------------- /www/static/img/android-avatar-without-images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/android-avatar-without-images.png -------------------------------------------------------------------------------- /www/static/img/android-icon-fab-styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/android-icon-fab-styles.png -------------------------------------------------------------------------------- /www/static/img/android-pill-themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/android-pill-themes.png -------------------------------------------------------------------------------- /www/static/img/android-text-fab-styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/android-text-fab-styles.png -------------------------------------------------------------------------------- /www/static/img/avatar-android-online-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/avatar-android-online-indicator.png -------------------------------------------------------------------------------- /www/static/img/avatar-android-variations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/avatar-android-variations.png -------------------------------------------------------------------------------- /www/static/img/button_anatomy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/button_anatomy.png -------------------------------------------------------------------------------- /www/static/img/button_states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/button_states.png -------------------------------------------------------------------------------- /www/static/img/button_widths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/button_widths.png -------------------------------------------------------------------------------- /www/static/img/calendar_height_modes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/calendar_height_modes.png -------------------------------------------------------------------------------- /www/static/img/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/caution.png -------------------------------------------------------------------------------- /www/static/img/chip-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/chip-states.png -------------------------------------------------------------------------------- /www/static/img/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/default.png -------------------------------------------------------------------------------- /www/static/img/dropdown_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/dropdown_default.png -------------------------------------------------------------------------------- /www/static/img/dropdown_default_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/dropdown_default_expanded.png -------------------------------------------------------------------------------- /www/static/img/dropdown_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/dropdown_disabled.png -------------------------------------------------------------------------------- /www/static/img/dropdown_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/dropdown_error.png -------------------------------------------------------------------------------- /www/static/img/dropdown_error_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/dropdown_error_expanded.png -------------------------------------------------------------------------------- /www/static/img/dropdown_long_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/dropdown_long_expanded.png -------------------------------------------------------------------------------- /www/static/img/iconLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/iconLeft.png -------------------------------------------------------------------------------- /www/static/img/iconRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/iconRight.png -------------------------------------------------------------------------------- /www/static/img/ios-action-sheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-action-sheet.png -------------------------------------------------------------------------------- /www/static/img/ios-alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-alert.png -------------------------------------------------------------------------------- /www/static/img/ios-buttonrow-emphasis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-buttonrow-emphasis.png -------------------------------------------------------------------------------- /www/static/img/ios-buttonrow-equal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-buttonrow-equal.png -------------------------------------------------------------------------------- /www/static/img/ios-buttonrow-minimal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-buttonrow-minimal.png -------------------------------------------------------------------------------- /www/static/img/ios-filter-chip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-filter-chip.png -------------------------------------------------------------------------------- /www/static/img/ios-navigation-bar-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-navigation-bar-default.png -------------------------------------------------------------------------------- /www/static/img/ios-navigation-bar-shadowless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-navigation-bar-shadowless.png -------------------------------------------------------------------------------- /www/static/img/ios-navigation-bar-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-navigation-bar-transparent.png -------------------------------------------------------------------------------- /www/static/img/ios-pill-themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-pill-themes.png -------------------------------------------------------------------------------- /www/static/img/ios-text1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-text1.png -------------------------------------------------------------------------------- /www/static/img/ios-text2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-text2.png -------------------------------------------------------------------------------- /www/static/img/ios-text3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-text3.png -------------------------------------------------------------------------------- /www/static/img/ios-title1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title1.png -------------------------------------------------------------------------------- /www/static/img/ios-title2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title2.png -------------------------------------------------------------------------------- /www/static/img/ios-title3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title3.png -------------------------------------------------------------------------------- /www/static/img/ios-title4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title4.png -------------------------------------------------------------------------------- /www/static/img/ios-title5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title5.png -------------------------------------------------------------------------------- /www/static/img/ios-title6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title6.png -------------------------------------------------------------------------------- /www/static/img/ios-title7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title7.png -------------------------------------------------------------------------------- /www/static/img/ios-title8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-title8.png -------------------------------------------------------------------------------- /www/static/img/ios-toggle-chip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios-toggle-chip.png -------------------------------------------------------------------------------- /www/static/img/ios/avatar-online-now.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/avatar-online-now.png -------------------------------------------------------------------------------- /www/static/img/ios/avatar-variations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/avatar-variations.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_cell_aspect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_cell_aspect.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_cell_fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_cell_fixed.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_content_insets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_content_insets.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_date_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_date_selected.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_height_modes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_height_modes.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_multiple_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_multiple_selection.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_no_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_no_header.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_no_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_no_next.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_no_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_no_previous.png -------------------------------------------------------------------------------- /www/static/img/ios/calendar_slashes_dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/calendar_slashes_dots.png -------------------------------------------------------------------------------- /www/static/img/ios/checkbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/checkbox_checked.png -------------------------------------------------------------------------------- /www/static/img/ios/checkbox_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/checkbox_disabled.png -------------------------------------------------------------------------------- /www/static/img/ios/checkbox_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/checkbox_empty.png -------------------------------------------------------------------------------- /www/static/img/ios/checkbox_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/checkbox_error.png -------------------------------------------------------------------------------- /www/static/img/ios/checkbox_intermediate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/checkbox_intermediate.png -------------------------------------------------------------------------------- /www/static/img/ios/date_picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/date_picker.png -------------------------------------------------------------------------------- /www/static/img/ios/dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/dropdown.png -------------------------------------------------------------------------------- /www/static/img/ios/dropdown_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/dropdown_disabled.png -------------------------------------------------------------------------------- /www/static/img/ios/dropdown_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/dropdown_error.png -------------------------------------------------------------------------------- /www/static/img/ios/dropdown_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/dropdown_highlighted.png -------------------------------------------------------------------------------- /www/static/img/ios/dropdown_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/dropdown_options.png -------------------------------------------------------------------------------- /www/static/img/ios/dropdown_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/dropdown_placeholder.png -------------------------------------------------------------------------------- /www/static/img/ios/icon_fab_primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/icon_fab_primary.png -------------------------------------------------------------------------------- /www/static/img/ios/icon_fab_secondary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/icon_fab_secondary.png -------------------------------------------------------------------------------- /www/static/img/ios/labelcheckbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/labelcheckbox_checked.png -------------------------------------------------------------------------------- /www/static/img/ios/labelcheckbox_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/labelcheckbox_disabled.png -------------------------------------------------------------------------------- /www/static/img/ios/labelcheckbox_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/labelcheckbox_empty.png -------------------------------------------------------------------------------- /www/static/img/ios/labelcheckbox_intermediate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/labelcheckbox_intermediate.png -------------------------------------------------------------------------------- /www/static/img/ios/labelcheckbox_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/labelcheckbox_left.png -------------------------------------------------------------------------------- /www/static/img/ios/labelcheckbox_multiline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/labelcheckbox_multiline.png -------------------------------------------------------------------------------- /www/static/img/ios/shadowcard_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/shadowcard_default.png -------------------------------------------------------------------------------- /www/static/img/ios/shadowcard_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/shadowcard_highlighted.png -------------------------------------------------------------------------------- /www/static/img/ios/switch_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/switch_off.png -------------------------------------------------------------------------------- /www/static/img/ios/switch_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/switch_on.png -------------------------------------------------------------------------------- /www/static/img/ios/text_fab_primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/text_fab_primary.png -------------------------------------------------------------------------------- /www/static/img/ios/text_fab_secondary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/text_fab_secondary.png -------------------------------------------------------------------------------- /www/static/img/ios/textarea_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textarea_disabled.png -------------------------------------------------------------------------------- /www/static/img/ios/textarea_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textarea_error.png -------------------------------------------------------------------------------- /www/static/img/ios/textarea_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textarea_highlighted.png -------------------------------------------------------------------------------- /www/static/img/ios/textarea_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textarea_placeholder.png -------------------------------------------------------------------------------- /www/static/img/ios/textarea_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textarea_text.png -------------------------------------------------------------------------------- /www/static/img/ios/textinput_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textinput_default.png -------------------------------------------------------------------------------- /www/static/img/ios/textinput_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textinput_disabled.png -------------------------------------------------------------------------------- /www/static/img/ios/textinput_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textinput_error.png -------------------------------------------------------------------------------- /www/static/img/ios/textinput_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textinput_highlighted.png -------------------------------------------------------------------------------- /www/static/img/ios/textinput_leftView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textinput_leftView.png -------------------------------------------------------------------------------- /www/static/img/ios/textinput_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/ios/textinput_placeholder.png -------------------------------------------------------------------------------- /www/static/img/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/link.png -------------------------------------------------------------------------------- /www/static/img/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/loading.png -------------------------------------------------------------------------------- /www/static/img/native-text-area-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/native-text-area-states.png -------------------------------------------------------------------------------- /www/static/img/native-text-input-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/native-text-input-states.png -------------------------------------------------------------------------------- /www/static/img/overview/alert-banner.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/alert.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/button-row.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/button.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/checkbox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/entity-avatar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/fab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/filter-chip.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/form-note.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/grid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/horizontal-rule.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/image.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/input-row.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/label.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/list.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/loader-dots.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/modal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/pill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/radio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/service-card.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/text-area.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/text-input.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/toast.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/toggle-chip.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/tooltip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /www/static/img/overview/user-avatar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/overview/wrap.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/static/img/primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/primary.png -------------------------------------------------------------------------------- /www/static/img/secondary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/secondary.png -------------------------------------------------------------------------------- /www/static/img/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/small.png -------------------------------------------------------------------------------- /www/static/img/solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/solid.png -------------------------------------------------------------------------------- /www/static/img/swiftui/alert-banner/tpAlertBanner-caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/alert-banner/tpAlertBanner-caution.png -------------------------------------------------------------------------------- /www/static/img/swiftui/alert-banner/tpAlertBanner-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/alert-banner/tpAlertBanner-info.png -------------------------------------------------------------------------------- /www/static/img/swiftui/alert-banner/tpAlertBanner-warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/alert-banner/tpAlertBanner-warning.png -------------------------------------------------------------------------------- /www/static/img/swiftui/avatar/tpavatar-example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/avatar/tpavatar-example-1.png -------------------------------------------------------------------------------- /www/static/img/swiftui/avatar/tpavatar-example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/avatar/tpavatar-example-2.png -------------------------------------------------------------------------------- /www/static/img/swiftui/avatar/tpavatar-example-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/avatar/tpavatar-example-3.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpButton_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpButton_default.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpButton_fullWidth_row.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpButton_fullWidth_row.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpButton_secondary_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpButton_secondary_small.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpButton_styles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpButton_styles.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpButton_tertiary_fullWidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpButton_tertiary_fullWidth.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpIconButton_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpIconButton_dark.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpIconButton_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpIconButton_default.png -------------------------------------------------------------------------------- /www/static/img/swiftui/buttons/tpRightIconButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/buttons/tpRightIconButton.png -------------------------------------------------------------------------------- /www/static/img/swiftui/loader-dots/ld-brand-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/loader-dots/ld-brand-medium.png -------------------------------------------------------------------------------- /www/static/img/swiftui/loader-dots/ld-brand-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/loader-dots/ld-brand-small.png -------------------------------------------------------------------------------- /www/static/img/swiftui/loader-dots/ld-inverse-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/loader-dots/ld-inverse-medium.png -------------------------------------------------------------------------------- /www/static/img/swiftui/loader-dots/ld-muted-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/loader-dots/ld-muted-medium.png -------------------------------------------------------------------------------- /www/static/img/swiftui/loader-dots/ld-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/loader-dots/ld-view.png -------------------------------------------------------------------------------- /www/static/img/swiftui/shadow-card/shadow-card-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/shadow-card/shadow-card-1.png -------------------------------------------------------------------------------- /www/static/img/swiftui/shadow-card/shadow-card-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/shadow-card/shadow-card-2.png -------------------------------------------------------------------------------- /www/static/img/swiftui/star-rating/star-rating-example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/star-rating/star-rating-example-1.png -------------------------------------------------------------------------------- /www/static/img/swiftui/star-rating/star-rating-example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/swiftui/star-rating/star-rating-example-2.png -------------------------------------------------------------------------------- /www/static/img/tertiary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/tertiary.png -------------------------------------------------------------------------------- /www/static/img/text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/text.png -------------------------------------------------------------------------------- /www/static/img/toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thumbtack/thumbprint/349f3c6588ea1df8ea0eeea9a610f6a548fc7bcc/www/static/img/toast.png --------------------------------------------------------------------------------