You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

104 lines
2.6 KiB

  1. /** @jsxRuntime classic */
  2. /** @jsx jsx */
  3. import { jsx, Box, Text, Container, Image } from 'theme-ui';
  4. import Logo from 'components/logo';
  5. import { Link } from 'components/link';
  6. import Widget from './widget';
  7. import { menuItems } from './footer.data';
  8. import { rgba } from 'polished';
  9. import logo from 'assets/images/White.png';
  10. export default function Footer() {
  11. return (
  12. <Box as="footer" sx={styles.footer}>
  13. <Container>
  14. <Box sx={styles.footerTopInner}>
  15. <Box sx={styles.about}>
  16. <Box sx={styles.logo}>
  17. <Image src={logo}/>
  18. </Box>
  19. <Box sx={styles.terms}>
  20. <Link path="#!">Terms of use</Link>
  21. <Text as="span">|</Text>
  22. <Link path="#!">Privacy</Link>
  23. </Box>
  24. <Text as="p" sx={styles.copyright}>
  25. Copyright by {new Date().getFullYear()} Thamrin Group
  26. </Text>
  27. </Box>
  28. {menuItems.map(({ id, title, items }) => (
  29. <Widget key={id} title={title} items={items} />
  30. ))}
  31. </Box>
  32. </Container>
  33. </Box>
  34. );
  35. }
  36. const styles = {
  37. footer: {
  38. pt: [8],
  39. pb: [8],
  40. },
  41. footerTopInner: {
  42. gap: [30, null, 50, '20px 50px', 17, 50],
  43. display: ['grid'],
  44. gridTemplateColumns: [
  45. 'repeat(2, 1fr)',
  46. null,
  47. null,
  48. 'repeat(4, 1fr)',
  49. 'repeat(5, 1fr)',
  50. ],
  51. },
  52. footerInner: {
  53. borderTop: `1px solid #D9E0E7`,
  54. display: ['block', null, 'flex'],
  55. alignItems: 'center',
  56. justifyContent: 'space-between',
  57. padding: '35px 0 40px',
  58. },
  59. about: {
  60. display: [null, null, null, 'grid', 'block'],
  61. gridTemplateColumns: '205px 1fr 1fr',
  62. alignItems: ['center'],
  63. gridRow: ['3/4', null, '1/1', '3/4', 'unset'],
  64. gridColumn: ['1/3', null, '1/2', '1/5', 'unset'],
  65. },
  66. logo: {
  67. display: ['flex'],
  68. justifyContent: ['center', null, null, 'unset'],
  69. gridColumn: '1/2',
  70. },
  71. terms: {
  72. display: ['flex'],
  73. gridColumn: '3/4',
  74. alignItems: ['center', null, null, null, 'flex-start', 'center'],
  75. flexDirection: ['row', null, null, null, 'column', 'row'],
  76. justifyContent: [
  77. 'center',
  78. null,
  79. 'flex-start',
  80. 'center',
  81. null,
  82. 'flex-start',
  83. ],
  84. mt: [4, null, null, 0, 4],
  85. a: {
  86. color: 'heading',
  87. },
  88. span: {
  89. display: ['inline-flex', null, null, null, 'none', 'inline-flex'],
  90. m: ['0 10px'],
  91. },
  92. },
  93. copyright: {
  94. color: rgba('#0F2137', 0.6),
  95. fontSize: ['14px'],
  96. mt: [3, null, null, -31, 3],
  97. mr: [null, null, null, 'auto', 'unset'],
  98. gridColumn: '2/3',
  99. textAlign: ['center', null, 'left', 'center', 'left'],
  100. },
  101. };