From 2e688d41c8d22c68052d5eac8f283ed4429fc536 Mon Sep 17 00:00:00 2001 From: Autli Date: Thu, 17 Sep 2026 23:35:04 +0500 Subject: [PATCH] add component announcent bar --- backend/asgi.py | 9 - .../fonts/integralcf/integralcf-regular.eot | 0 .../fonts/integralcf/integralcf-regular.ttf | Bin 0 -> 29548 bytes .../fonts/integralcf/integralcf-regular.woff | 0 .../fonts/integralcf/integralcf-regular.woff2 | Bin 0 -> 16436 bytes frontend/src/App.css | 184 ------------------ frontend/src/App.tsx | 121 +----------- frontend/src/assets/hero.png | Bin 13057 -> 0 bytes frontend/src/assets/react.svg | 1 - frontend/src/assets/vite.svg | 1 - .../AnnouncementBar.module.css | 45 +++++ .../AnnouncementBar/AnnouncementBar.tsx | 33 ++++ frontend/src/index.css | 111 ----------- frontend/src/main.tsx | 7 +- frontend/src/pages/Home/Home.tsx | 11 ++ frontend/src/styles/globals.css | 19 ++ 16 files changed, 115 insertions(+), 427 deletions(-) create mode 100644 frontend/public/fonts/integralcf/integralcf-regular.eot create mode 100755 frontend/public/fonts/integralcf/integralcf-regular.ttf create mode 100644 frontend/public/fonts/integralcf/integralcf-regular.woff create mode 100644 frontend/public/fonts/integralcf/integralcf-regular.woff2 delete mode 100644 frontend/src/App.css delete mode 100644 frontend/src/assets/hero.png delete mode 100644 frontend/src/assets/react.svg delete mode 100644 frontend/src/assets/vite.svg create mode 100644 frontend/src/components/AnnouncementBar/AnnouncementBar.module.css create mode 100644 frontend/src/components/AnnouncementBar/AnnouncementBar.tsx delete mode 100644 frontend/src/index.css create mode 100644 frontend/src/pages/Home/Home.tsx create mode 100644 frontend/src/styles/globals.css diff --git a/backend/asgi.py b/backend/asgi.py index f934e0f..c6fe45e 100644 --- a/backend/asgi.py +++ b/backend/asgi.py @@ -1,12 +1,3 @@ -""" -ASGI config for backend project. - -It exposes the ASGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/6.1/howto/deployment/asgi/ -""" - import os from django.core.asgi import get_asgi_application diff --git a/frontend/public/fonts/integralcf/integralcf-regular.eot b/frontend/public/fonts/integralcf/integralcf-regular.eot new file mode 100644 index 0000000..e69de29 diff --git a/frontend/public/fonts/integralcf/integralcf-regular.ttf b/frontend/public/fonts/integralcf/integralcf-regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..42cac26a50454ce711a3eda1c6e9bbd8eac47d7f GIT binary patch literal 29548 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 div { - flex: 1 1 0; - padding: 32px; - @media (max-width: 1024px) { - padding: 24px 20px; - } - } - - .icon { - margin-bottom: 16px; - width: 22px; - height: 22px; - } - - @media (max-width: 1024px) { - flex-direction: column; - text-align: center; - } -} - -#docs { - border-right: 1px solid var(--border); - - @media (max-width: 1024px) { - border-right: none; - border-bottom: 1px solid var(--border); - } -} - -#next-steps ul { - list-style: none; - padding: 0; - display: flex; - gap: 8px; - margin: 32px 0 0; - - .logo { - height: 18px; - } - - a { - color: var(--text-h); - font-size: 16px; - border-radius: 6px; - background: var(--social-bg); - display: flex; - padding: 6px 12px; - align-items: center; - gap: 8px; - text-decoration: none; - transition: box-shadow 0.3s; - - &:hover { - box-shadow: var(--shadow); - } - .button-icon { - height: 18px; - width: 18px; - } - } - - @media (max-width: 1024px) { - margin-top: 20px; - flex-wrap: wrap; - justify-content: center; - - li { - flex: 1 1 calc(50% - 8px); - } - - a { - width: 100%; - justify-content: center; - box-sizing: border-box; - } - } -} - -#spacer { - height: 88px; - border-top: 1px solid var(--border); - @media (max-width: 1024px) { - height: 48px; - } -} - -.ticks { - position: relative; - width: 100%; - - &::before, - &::after { - content: ''; - position: absolute; - top: -4.5px; - border: 5px solid transparent; - } - - &::before { - left: 0; - border-left-color: var(--border); - } - &::after { - right: 0; - border-right-color: var(--border); - } -} diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 9ca8e8d..280c96c 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,122 +1,7 @@ -import { useState } from 'react' -import heroImg from './assets/hero.png' -import reactLogo from './assets/react.svg' -import viteLogo from './assets/vite.svg' -import './App.css' +import Home from './pages/Home/Home' function App() { - const [count, setCount] = useState(0) - - return ( - <> -
-
- - React logo - Vite logo -
-
-

Get started

-

- Edit src/App.tsx and save to test HMR -

-
- -
- -
- -
-
- -

Documentation

-

Your questions, answered

- -
-
- -

Connect with us

-

Join the Vite community

- -
-
- -
-
- - ) + return } -export default App +export default App \ No newline at end of file diff --git a/frontend/src/assets/hero.png b/frontend/src/assets/hero.png deleted file mode 100644 index 02251f4b956c55af2d76fd0788124d7eee2b45eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13057 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 P00000NkvXXu0mjft=yBf diff --git a/frontend/src/assets/react.svg b/frontend/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/frontend/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/assets/vite.svg b/frontend/src/assets/vite.svg deleted file mode 100644 index 5101b67..0000000 --- a/frontend/src/assets/vite.svg +++ /dev/null @@ -1 +0,0 @@ -Vite diff --git a/frontend/src/components/AnnouncementBar/AnnouncementBar.module.css b/frontend/src/components/AnnouncementBar/AnnouncementBar.module.css new file mode 100644 index 0000000..ea5082e --- /dev/null +++ b/frontend/src/components/AnnouncementBar/AnnouncementBar.module.css @@ -0,0 +1,45 @@ +.announcementBar { + position: relative; + display: flex; + align-items: center; + justify-content: center; + min-height: 38px; + padding: 8px 48px; + background: #000; + color: #fff; + font-size: 13px; +} + +.text { + margin: 0; + text-align: center; +} + +.signUp { + padding: 0; + border: 0; + background: none; + color: inherit; + font: inherit; + text-decoration: underline; + cursor: pointer; +} + +.close { + position: absolute; + top: 50%; + right: 24px; + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + padding: 0; + border: 0; + background: none; + color: #fff; + font-size: 22px; + line-height: 1; + cursor: pointer; + transform: translateY(-50%); +} \ No newline at end of file diff --git a/frontend/src/components/AnnouncementBar/AnnouncementBar.tsx b/frontend/src/components/AnnouncementBar/AnnouncementBar.tsx new file mode 100644 index 0000000..a63e85d --- /dev/null +++ b/frontend/src/components/AnnouncementBar/AnnouncementBar.tsx @@ -0,0 +1,33 @@ +import { useState } from 'react' + +import styles from './AnnouncementBar.module.css' + +function AnnouncementBar() { + const [isVisible, setIsVisible] = useState(true) + + if (!isVisible) { + return null + } + + return ( +
+

+ Sign up and get 20% off to your first order.{' '} + +

+ + +
+ ) +} + +export default AnnouncementBar \ No newline at end of file diff --git a/frontend/src/index.css b/frontend/src/index.css deleted file mode 100644 index 5fb3313..0000000 --- a/frontend/src/index.css +++ /dev/null @@ -1,111 +0,0 @@ -:root { - --text: #6b6375; - --text-h: #08060d; - --bg: #fff; - --border: #e5e4e7; - --code-bg: #f4f3ec; - --accent: #aa3bff; - --accent-bg: rgba(170, 59, 255, 0.1); - --accent-border: rgba(170, 59, 255, 0.5); - --social-bg: rgba(244, 243, 236, 0.5); - --shadow: - rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px; - - --sans: system-ui, 'Segoe UI', Roboto, sans-serif; - --heading: system-ui, 'Segoe UI', Roboto, sans-serif; - --mono: ui-monospace, Consolas, monospace; - - font: 18px/145% var(--sans); - letter-spacing: 0.18px; - color-scheme: light dark; - color: var(--text); - background: var(--bg); - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - @media (max-width: 1024px) { - font-size: 16px; - } -} - -@media (prefers-color-scheme: dark) { - :root { - --text: #9ca3af; - --text-h: #f3f4f6; - --bg: #16171d; - --border: #2e303a; - --code-bg: #1f2028; - --accent: #c084fc; - --accent-bg: rgba(192, 132, 252, 0.15); - --accent-border: rgba(192, 132, 252, 0.5); - --social-bg: rgba(47, 48, 58, 0.5); - --shadow: - rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; - } - - #social .button-icon { - filter: invert(1) brightness(2); - } -} - -#root { - width: 1126px; - max-width: 100%; - margin: 0 auto; - text-align: center; - border-inline: 1px solid var(--border); - min-height: 100svh; - display: flex; - flex-direction: column; - box-sizing: border-box; -} - -body { - margin: 0; -} - -h1, -h2 { - font-family: var(--heading); - font-weight: 500; - color: var(--text-h); -} - -h1 { - font-size: 56px; - letter-spacing: -1.68px; - margin: 32px 0; - @media (max-width: 1024px) { - font-size: 36px; - margin: 20px 0; - } -} -h2 { - font-size: 24px; - line-height: 118%; - letter-spacing: -0.24px; - margin: 0 0 8px; - @media (max-width: 1024px) { - font-size: 20px; - } -} -p { - margin: 0; -} - -code, -.counter { - font-family: var(--mono); - display: inline-flex; - border-radius: 4px; - color: var(--text-h); -} - -code { - font-size: 15px; - line-height: 135%; - padding: 4px 8px; - background: var(--code-bg); -} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index bef5202..3d3010a 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -1,10 +1,11 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.tsx' + +import App from './App' +import './styles/globals.css' createRoot(document.getElementById('root')!).render( , -) +) \ No newline at end of file diff --git a/frontend/src/pages/Home/Home.tsx b/frontend/src/pages/Home/Home.tsx new file mode 100644 index 0000000..12c443c --- /dev/null +++ b/frontend/src/pages/Home/Home.tsx @@ -0,0 +1,11 @@ +import AnnouncementBar from '../../components/AnnouncementBar/AnnouncementBar' + +function Home() { + return ( + <> + + + ) +} + +export default Home \ No newline at end of file diff --git a/frontend/src/styles/globals.css b/frontend/src/styles/globals.css new file mode 100644 index 0000000..76d66b2 --- /dev/null +++ b/frontend/src/styles/globals.css @@ -0,0 +1,19 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +@font-face { + font-family: "integralcf"; + src: url("../../public/fonts/integralcf/integralcf-regular.woff") format("woff"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +body { + background-color: #fff; + color: #000; + font-family: "integralcf", sans-serif; +} \ No newline at end of file