4bd1786ae5
* Initial commit - started work on new billing components * Added a slider component * Added features to the pricing tiers * Small pricing tier margin tweaks * WIP on a concurrecy chart * Reworked the pricing tiers to include a segmented controller and tooltips * Renamed the charts storybook page * Made the way data is added more flexible and added some definition tool tips * Term definitions are used properly in the tiers * Callouts can now have an optional CTA on the right hand side * Alignment fix for the callouts * organize imports * Definition tooltip now its own component * renamed the storybook story * WIP new volume discount table and usage sliders * Added pricing calculator sliders * Fixed alignment of the legend * Breadcrumb now has an upgrade prompt and button * New Join our Slack button in the side menu * New progress meter in the side menu * Use the highest of 2 values to show progress * An attempt to fix the step count in the calculator slider * WIP usage progress bar * Added the 4 progress bars * More examples of the usage bar * Better way to include the percentage in the free plan progress meter * The usage bar now works with the extra runs over the free limit * Pricing calculator has better slider logic * Moved the free plan usage bar into it’s own component and added it to storybook * Usage bar chart now supports a paying customer option and optional billing limit. Also added more usage examples to storybook * Added more examples of usage to storybook * tooltip takes classname * Format numbers nicely * Added a tooltip to show the precise numbers in the chart * small improvements to the billing calculator * New onboarding choose plan page * pricing tiers better fill the size of their container * Removed unused code * Usage bars animate * Wording tweak * Callouts fit the button size better * Added new routes for the 2 new billing pages * import cleanup * Added meta info in the header for bill price, plan type and billing period * made free a noun * Added pricing calculator to the plans page * Fixed some illegal markup when using tooltips * Added container query support * Added new concurrency chart to the usage page * billing now has a green theme * Simplified the plan summary info int the header * Fixed padding alignment * Use a custom lable for the concurrent runs chart * Removed the Job runs table * Latest lockfile * Show a message if you haven’t done runs yet * Added a layoutId to the pageTabs * Show a message callout if you’ve exceeeded 10k runs on the free plan * Added a callout on the plans page if you’re over the runs limit * Fixed button inside button bug * Removed the background gradients from the app * The billing package is importing properly * Getting the curent plan for an org * Reading the current plan and usage * Hooked up the free plan bar * Render basic billing details * vol discount table has optional values * Added a new page to show new subscribers * Created a new hook for confetti on the subscribed page * Toast styling updated * The Invoice and Manage card details links are working * Meta appEnv data optional * Data for the plans page * Format the billing period duration in days * Switch to 20 icons * URL for the subscribed page now includes the org path * New pathBuilder path for the subscribed page * Plans are upgraded/downgraded successfully * Fixed badly named paths * Improved some of the display * Deal with when the user has canceled so they can re-upgrade * Subscribing from Stripe is working, and canceling * Tidied up some bits, latest billing package * The tiers are now rendering using the real data * The onboarding screen is hooked up, but not linked to yet * Onboarding price selection working * Pricing slider working * Price estimation working * Pricing calculator working on the select a plan page * Button copy change * Improved the layout of the run calculator marker * Fix for the period end when you’ve canceled * Improved the formatting in the calculator * Pricing table tooltip uses the vol discount pricing table * Remove the vertical lines from the calculator * Contact us button in Enterprise tier opens the contact us form * Added composite index to triggerdotdev_events.run_executions for event_time and organization_id * Concurrent run chart data * Improves styling, fix for React error with Enterprise contact button * Show warning box when you’ve hit the concurrency in the past 30 days * Lots of work o the usage page * Improvements to the usage page * Show 31 days of data, fix for not showing the current date… * Stripe portal links are generated when the user clicks through * Better alignment of the reference line and x-axis label * Readme update * Fixed pricing button loading buttons * Show warnings about concurrency and runs on the plans page * Removed some storybook stories * Join Slack channel shows if you’re subscribed with instructions * Added a gap between the runs charts * Improved the definitions * Added some margin to the page loading spinner * A wider, cleaner feedback panel * Modal backgrounds match the Sheet style * Fixed menu item text being clipped * Improved icons for execution time and exclusion count * Concurrency chart now renders the dates nicely * Fix for plans data on the plans page * The healthcheck doesn’t need to do a HEAD request to / * Better disabled states and fixed the disabled hover state issue * Improved the segmented controller style * loading spinner now centered inside the button * Redirect to the project page when selecting the free plan * Fix for “Runs” and added real date to upgrade warning * DeCAPITALIZED some things --------- Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
212 lines
5.6 KiB
JavaScript
212 lines
5.6 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
const colors = require("tailwindcss/colors");
|
|
|
|
const slate = {
|
|
...colors.slate,
|
|
450: "#7E8FA6",
|
|
500: "#6B7C95",
|
|
550: "#586981",
|
|
600: "#45566D",
|
|
650: "#3C4B62",
|
|
750: "#293649",
|
|
850: "#1A2434",
|
|
900: "#131B2B",
|
|
};
|
|
|
|
/** Trigger.dev custom palette */
|
|
const midnight = {
|
|
...colors.slate,
|
|
450: colors.slate[850],
|
|
500: colors.slate[650],
|
|
550: colors.slate[700],
|
|
600: colors.slate[750],
|
|
650: colors.slate[800],
|
|
750: colors.slate[850],
|
|
800: colors.slate[900],
|
|
850: "#0E1521",
|
|
900: "#0B1018",
|
|
};
|
|
|
|
/** Text colors */
|
|
const bright = colors.slate[200];
|
|
const dimmed = colors.slate[400];
|
|
|
|
/** Shadcn colors */
|
|
const background = midnight[900];
|
|
const foreground = "hsl(213 31% 91%)";
|
|
const muted = "hsl(223 47% 11%)";
|
|
const mutedForeground = "hsl(215.4 16.3% 56.9%)";
|
|
const popover = slate[850];
|
|
const popoverForeground = colors.slate[800];
|
|
const card = "hsl(0 0% 100%)";
|
|
const cardForeground = "hsl(222.2 47.4% 11.2%)";
|
|
const border = slate[850];
|
|
const input = slate[850];
|
|
const primary = colors.indigo[600];
|
|
const primaryForeground = colors.indigo[500];
|
|
const secondary = "hsl(222.2 47.4% 11.2%)";
|
|
const secondaryForeground = slate[850];
|
|
const tertiary = "hsl(217 37% 7% / 0)";
|
|
const tertiaryForeground = slate[850];
|
|
const accent = slate[750];
|
|
const accentForeground = "hsl(210 40% 98%)";
|
|
const destructive = "hsl(0 63% 31%)";
|
|
const destructiveForeground = "hsl(210 40% 98%)";
|
|
const ring = colors.indigo[600];
|
|
const radius = "0.5rem";
|
|
const darkBackground = midnight[900];
|
|
const divide = slate[850];
|
|
|
|
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
"./app/**/*.{ts,jsx,tsx}",
|
|
// include packages if not transpiling
|
|
"../../packages/**/*.{ts,tsx}",
|
|
],
|
|
theme: {
|
|
container: {
|
|
center: true,
|
|
padding: "2rem",
|
|
screens: {
|
|
"2xl": "1400px",
|
|
},
|
|
},
|
|
extend: {
|
|
fontFamily: {
|
|
sans: ["Inter", "sans-serif"],
|
|
mono: ["Roboto Mono", "monospace"],
|
|
title: ["Poppins", "sans-serif"],
|
|
},
|
|
fontSize: {
|
|
xxs: [
|
|
"0.65rem",
|
|
{
|
|
lineHeight: "0.75rem",
|
|
letterSpacing: "-0.01em",
|
|
fontWeight: "500",
|
|
},
|
|
],
|
|
"2sm": [
|
|
"0.8125rem",
|
|
{
|
|
lineHeight: "0.875rem",
|
|
letterSpacing: "-0.01em",
|
|
fontWeight: "500",
|
|
},
|
|
],
|
|
},
|
|
colors: {
|
|
midnight,
|
|
darkBackground,
|
|
divide,
|
|
bright,
|
|
dimmed,
|
|
background,
|
|
border,
|
|
input,
|
|
ring,
|
|
foreground,
|
|
primary: {
|
|
DEFAULT: primary,
|
|
foreground: primaryForeground,
|
|
},
|
|
secondary: {
|
|
DEFAULT: secondary,
|
|
foreground: secondaryForeground,
|
|
},
|
|
tertiary: {
|
|
DEFAULT: tertiary,
|
|
foreground: tertiaryForeground,
|
|
},
|
|
destructive: {
|
|
DEFAULT: destructive,
|
|
foreground: destructiveForeground,
|
|
},
|
|
muted: {
|
|
DEFAULT: muted,
|
|
foreground: mutedForeground,
|
|
},
|
|
accent: {
|
|
DEFAULT: accent,
|
|
foreground: accentForeground,
|
|
},
|
|
popover: {
|
|
DEFAULT: popover,
|
|
foreground: popoverForeground,
|
|
},
|
|
card: {
|
|
DEFAULT: card,
|
|
foreground: cardForeground,
|
|
},
|
|
slate,
|
|
acid: {
|
|
400: "#F1FF98",
|
|
500: "#E7FF52",
|
|
600: "#FFF067",
|
|
},
|
|
toxic: {
|
|
400: "#8EFF9A",
|
|
500: "#41FF54",
|
|
600: "#00FFA3",
|
|
},
|
|
devEnv: colors.pink,
|
|
liveEnv: colors.green,
|
|
"ui-border": slate[800],
|
|
"ui-border-dimmed": slate[900],
|
|
},
|
|
borderRadius: {
|
|
lg: radius,
|
|
md: `calc(${radius} - 2px)`,
|
|
sm: `calc(${radius} - 4px)`,
|
|
},
|
|
boxShadow: {
|
|
"glow-primary": "0 0 10px 5px rgba(218, 244, 55, 0.2)",
|
|
"glow-secondary": "0 0 10px 5px rgba(79, 70, 229, 0.2)",
|
|
"glow-pink": "0 0 10px 5px rgba(236, 72, 153, 0.2)",
|
|
},
|
|
keyframes: {
|
|
"accordion-down": {
|
|
from: { height: 0 },
|
|
to: { height: "var(--radix-accordion-content-height)" },
|
|
},
|
|
"accordion-up": {
|
|
from: { height: "var(--radix-accordion-content-height)" },
|
|
to: { height: 0 },
|
|
},
|
|
float: {
|
|
"0%": { transform: "translatey(0px)" },
|
|
"50%": { transform: "translatey(7px)" },
|
|
"100%": { transform: "translatey(0px)" },
|
|
},
|
|
},
|
|
animation: {
|
|
"accordion-down": "accordion-down 0.2s ease-out",
|
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
},
|
|
backgroundImage: {
|
|
"gradient-radial": "radial-gradient(closest-side, var(--tw-gradient-stops))",
|
|
"gradient-primary": `linear-gradient(90deg, acid-500 0%, toxic-500 100%)`,
|
|
"gradient-primary-hover": `linear-gradient(80deg, acid-600 0%, toxic-600 100%)`,
|
|
"gradient-secondary": `linear-gradient(90deg, hsl(271 91 65) 0%, hsl(221 83 53) 100%)`,
|
|
"gradient-radial-secondary": `radial-gradient(hsl(271 91 65), hsl(221 83 53))`,
|
|
},
|
|
gridTemplateColumns: {
|
|
carousel: "repeat(6, 200px)",
|
|
},
|
|
screens: {
|
|
'lg-height': {'raw': '(max-height: 750px)'},
|
|
'md-height': {'raw': '(max-height: 600px)'},
|
|
}
|
|
},
|
|
},
|
|
plugins: [
|
|
require("@tailwindcss/container-queries"),
|
|
require("@tailwindcss/forms"),
|
|
require("@tailwindcss/typography"),
|
|
require("tailwindcss-animate"),
|
|
require("tailwind-scrollbar"),
|
|
require("tailwind-scrollbar-hide"),
|
|
],
|
|
};
|