@@ -10,9 +10,10 @@ import {
1010  Link , 
1111  Preview , 
1212  Section , 
13+   Tailwind , 
1314  Text , 
1415}  from  '@react-email/components' ; 
15- import  {   Tailwind   }   from  '@react-email /tailwind' ; 
16+ import  tailwindConfig   from  '.. /tailwind.config ' ; 
1617
1718interface  LinearLoginCodeEmailProps  { 
1819  validationCode ?: string ; 
@@ -27,33 +28,43 @@ export const LinearLoginCodeEmail = ({
2728} : LinearLoginCodeEmailProps )  =>  ( 
2829  < Html > 
2930    < Head  /> 
30-     < Body  style = { main } > 
31-       < Preview > Your login code for Linear</ Preview > 
32-       < Container  style = { container } > 
33-         < Img 
34-           src = { `${ baseUrl }  /static/linear-logo.png` } 
35-           width = "42" 
36-           height = "42" 
37-           alt = "Linear" 
38-           style = { logo } 
39-         /> 
40-         < Heading  style = { heading } > Your login code for Linear</ Heading > 
41-         < Section  style = { buttonContainer } > 
42-           < Button  style = { button }  href = "https://linear.app" > 
43-             Login to Linear
44-           </ Button > 
45-         </ Section > 
46-         < Text  style = { paragraph } > 
47-           This link and code will only be valid for the next 5 minutes. If the
48-           link does not work, you can use the login verification code directly:
49-         </ Text > 
50-         < code  style = { code } > { validationCode } </ code > 
51-         < Hr  style = { hr }  /> 
52-         < Link  href = "https://linear.app"  style = { reportLink } > 
53-           Linear
54-         </ Link > 
55-       </ Container > 
56-     </ Body > 
31+     < Tailwind  config = { tailwindConfig } > 
32+       < Body  className = "bg-white font-linear" > 
33+         < Preview > Your login code for Linear</ Preview > 
34+         < Container  className = "mx-auto my-0 max-w-[560px] px-0 pt-5 pb-12" > 
35+           < Img 
36+             src = { `${ baseUrl }  /static/linear-logo.png` } 
37+             width = "42" 
38+             height = "42" 
39+             alt = "Linear" 
40+             className = "rounded-3xl w-10.5 h-10.5" 
41+           /> 
42+           < Heading  className = "text-2xl tracking-tight leading-[1.3] font-normal text-[#484848] pt-4 px-0 pb-0" > 
43+             Your login code for Linear
44+           </ Heading > 
45+           < Section  className = "py-7 px-0" > 
46+             < Button 
47+               className = "bg-[#5e6ad2] rounded font-semibold text-white text-[15px] no-underline text-center block py-[11px] px-6" 
48+               href = "https://linear.app" 
49+             > 
50+               Login to Linear
51+             </ Button > 
52+           </ Section > 
53+           < Text  className = "mb-4 mx-0 mt-0 leading-[1.4] text-[14px] text-[#3c4149]" > 
54+             This link and code will only be valid for the next 5 minutes. If the
55+             link does not work, you can use the login verification code
56+             directly:
57+           </ Text > 
58+           < code  className = "font-mono font-bold px-1 py-px bg-[#dfe1e4] text-[#3c4149] text-xl tracking-tight" > 
59+             { validationCode } 
60+           </ code > 
61+           < Hr  className = "border-[#dfe1e4] mt-10.5 mb-6.5"  /> 
62+           < Link  href = "https://linear.app"  className = "text-[#b4becc] text-sm" > 
63+             Linear
64+           </ Link > 
65+         </ Container > 
66+       </ Body > 
67+     </ Tailwind > 
5768  </ Html > 
5869) ; 
5970
@@ -63,73 +74,3 @@ LinearLoginCodeEmail.PreviewProps = {
6374
6475export  default  LinearLoginCodeEmail ; 
6576
66- const  logo  =  { 
67-   borderRadius : 21 , 
68-   width : 42 , 
69-   height : 42 , 
70- } ; 
71- 
72- const  main  =  { 
73-   backgroundColor : '#ffffff' , 
74-   fontFamily :
75-     '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif' , 
76- } ; 
77- 
78- const  container  =  { 
79-   margin : '0 auto' , 
80-   padding : '20px 0 48px' , 
81-   maxWidth : '560px' , 
82- } ; 
83- 
84- const  heading  =  { 
85-   fontSize : '24px' , 
86-   letterSpacing : '-0.5px' , 
87-   lineHeight : '1.3' , 
88-   fontWeight : '400' , 
89-   color : '#484848' , 
90-   padding : '17px 0 0' , 
91- } ; 
92- 
93- const  paragraph  =  { 
94-   margin : '0 0 15px' , 
95-   fontSize : '15px' , 
96-   lineHeight : '1.4' , 
97-   color : '#3c4149' , 
98- } ; 
99- 
100- const  buttonContainer  =  { 
101-   padding : '27px 0 27px' , 
102- } ; 
103- 
104- const  button  =  { 
105-   backgroundColor : '#5e6ad2' , 
106-   borderRadius : '3px' , 
107-   fontWeight : '600' , 
108-   color : '#fff' , 
109-   fontSize : '15px' , 
110-   textDecoration : 'none' , 
111-   textAlign : 'center'  as  const , 
112-   display : 'block' , 
113-   padding : '11px 23px' , 
114- } ; 
115- 
116- const  reportLink  =  { 
117-   fontSize : '14px' , 
118-   color : '#b4becc' , 
119- } ; 
120- 
121- const  hr  =  { 
122-   borderColor : '#dfe1e4' , 
123-   margin : '42px 0 26px' , 
124- } ; 
125- 
126- const  code  =  { 
127-   fontFamily : 'monospace' , 
128-   fontWeight : '700' , 
129-   padding : '1px 4px' , 
130-   backgroundColor : '#dfe1e4' , 
131-   letterSpacing : '-0.3px' , 
132-   fontSize : '21px' , 
133-   borderRadius : '4px' , 
134-   color : '#3c4149' , 
135- } ; 
0 commit comments