├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── public
├── Thumbs.db
├── favicon.ico
├── index.html
└── manifest.json
├── screenshot.png
└── src
├── App.jsx
├── assets
├── font
│ └── Domaine Sans Fine Regular Regular.woff
├── img
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 41.png
│ ├── 5.png
│ ├── 6.png
│ ├── 9.png
│ ├── Chaniru.lk.png
│ ├── Thumbs.db
│ ├── f1.png
│ ├── pod01.png
│ ├── pod02.png
│ ├── pod03.png
│ ├── pod04.png
│ └── sc1.png
└── video.mp4
├── components
├── CoverVideo.jsx
├── Loader.jsx
├── Logo.jsx
├── ScrollTriggerProxy.jsx
├── cover.css
├── loader.css
├── nav.css
└── sections
│ ├── About.jsx
│ ├── Banner.jsx
│ ├── Footer.jsx
│ ├── Home.jsx
│ ├── Second.jsx
│ ├── Third.jsx
│ ├── about.css
│ ├── banner.css
│ ├── foot.css
│ ├── new.css
│ └── second.css
├── index.js
└── styles
├── GlobalStyles.js
└── Themes.js
/.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 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # This Website was crafted by - @chaniru.lk - Instagram
2 | 
3 |
4 | # About the AUTHOR
5 |
6 |
FOLLOW ME ON INSTAGRAM - @chaniru.lk
7 |
8 | For more designs and inspiring website development /
9 | awwwards remakes :-)
10 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wibe-test",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@fontsource/kaushan-script": "^4.5.2",
7 | "@fontsource/lora": "^4.5.10",
8 | "@fontsource/monda": "^4.5.8",
9 | "@fontsource/sirin-stencil": "^4.5.2",
10 | "@testing-library/jest-dom": "^5.16.2",
11 | "@testing-library/react": "^12.1.4",
12 | "@testing-library/user-event": "^13.5.0",
13 | "framer-motion": "^6.2.8",
14 | "gsap": "^3.9.1",
15 | "locomotive-scroll": "^4.1.4",
16 | "react": "^17.0.2",
17 | "react-dom": "^17.0.2",
18 | "react-locomotive-scroll": "^0.2.0",
19 | "react-router-dom": "^6.2.2",
20 | "react-scripts": "5.0.0",
21 | "styled-components": "^5.3.3",
22 | "web-vitals": "^2.1.4"
23 | },
24 | "scripts": {
25 | "start": "react-scripts start",
26 | "build": "react-scripts build",
27 | "test": "react-scripts test",
28 | "eject": "react-scripts eject"
29 | },
30 | "eslintConfig": {
31 | "extends": [
32 | "react-app",
33 | "react-app/jest"
34 | ]
35 | },
36 | "browserslist": {
37 | "production": [
38 | ">0.2%",
39 | "not dead",
40 | "not op_mini all"
41 | ],
42 | "development": [
43 | "last 1 chrome version",
44 | "last 1 firefox version",
45 | "last 1 safari version"
46 | ]
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/public/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/public/Thumbs.db
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
15 |
16 |
25 | Crue Creative - Sri Lankan Creative Studio
26 |
27 |
28 |
29 | You need to enable JavaScript to run this app.
30 |
31 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/screenshot.png
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import { ThemeProvider } from 'styled-components';
2 | import { useRef, useState, useEffect } from 'react';
3 | import { LocomotiveScrollProvider } from 'react-locomotive-scroll';
4 | import 'locomotive-scroll/dist/locomotive-scroll.css';
5 | import { AnimatePresence } from 'framer-motion';
6 |
7 | import GlobalStyles from './styles/GlobalStyles';
8 | import { dark } from './styles/Themes';
9 | import Home from './components/sections/Home';
10 | import About from './components/sections/About';
11 | import Second from './components/sections/Second';
12 | import ScrollTriggerProxy from './components/ScrollTriggerProxy';
13 | import Banner from './components/sections/Banner';
14 | import Third from './components/sections/Third';
15 | import Footer from './components/sections/Footer';
16 | import Loader from './components/Loader';
17 |
18 | const App = () => {
19 | const containerRef = useRef(null);
20 |
21 | const [loaded, setLoaded] = useState(false);
22 |
23 | useEffect(() => {
24 | setTimeout(() => {
25 | setLoaded(true);
26 | }, 3000);
27 | }, []);
28 |
29 | return (
30 | <>
31 |
32 |
33 |
52 |
53 | {loaded ? null : }
54 |
55 |
56 |
57 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | >
73 | );
74 | };
75 |
76 | export default App;
77 |
--------------------------------------------------------------------------------
/src/assets/font/Domaine Sans Fine Regular Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/font/Domaine Sans Fine Regular Regular.woff
--------------------------------------------------------------------------------
/src/assets/img/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/1.png
--------------------------------------------------------------------------------
/src/assets/img/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/2.png
--------------------------------------------------------------------------------
/src/assets/img/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/3.png
--------------------------------------------------------------------------------
/src/assets/img/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/4.png
--------------------------------------------------------------------------------
/src/assets/img/41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/41.png
--------------------------------------------------------------------------------
/src/assets/img/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/5.png
--------------------------------------------------------------------------------
/src/assets/img/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/6.png
--------------------------------------------------------------------------------
/src/assets/img/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/9.png
--------------------------------------------------------------------------------
/src/assets/img/Chaniru.lk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/Chaniru.lk.png
--------------------------------------------------------------------------------
/src/assets/img/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/Thumbs.db
--------------------------------------------------------------------------------
/src/assets/img/f1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/f1.png
--------------------------------------------------------------------------------
/src/assets/img/pod01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/pod01.png
--------------------------------------------------------------------------------
/src/assets/img/pod02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/pod02.png
--------------------------------------------------------------------------------
/src/assets/img/pod03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/pod03.png
--------------------------------------------------------------------------------
/src/assets/img/pod04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/pod04.png
--------------------------------------------------------------------------------
/src/assets/img/sc1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/img/sc1.png
--------------------------------------------------------------------------------
/src/assets/video.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Chanirulk/Awwwards-remake-CRUE-CREATIVE/a219b14e0439fe9da9fc9acaa78b2cf3492093f3/src/assets/video.mp4
--------------------------------------------------------------------------------
/src/components/CoverVideo.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import Video from '../assets/video.mp4';
3 | import { motion } from 'framer-motion';
4 | import "./cover.css";
5 | const SectionWrapper = styled.section`
6 | min-height: 100vh;
7 | width: 100%;
8 | position: relative;
9 |
10 | video {
11 | width: 100%;
12 | height: 100vh;
13 | object-fit: cover;
14 | }
15 | `;
16 |
17 | const OverLay = styled.div`
18 | position: absolute;
19 | top: 0;
20 | bottom: 0;
21 | left: 0;
22 | right: 0;
23 |
24 | z-index: 1;
25 | background-color: ${(props) =>
26 | `rgba(${props.theme.bodyRgba}, 0.7)`};
27 | `;
28 |
29 | const TitleWrapper = styled(motion.div)`
30 | position: absolute;
31 | top: 47%;
32 | left: 1%;
33 | z-index: 8;
34 |
35 | display: flex;
36 | flex-direction: column;
37 | justify-content: center;
38 | align-items: center;
39 | div {
40 | display: flex;
41 | }
42 |
43 | `;
44 |
45 | const containerVariants = {
46 | hidden: {
47 | opacity: 0,
48 | },
49 | show: {
50 | opacity: 1,
51 | transition: {
52 | delayChildren: 5, // 2
53 | staggerChildren: 0.3,
54 | },
55 | },
56 | };
57 |
58 | const itemVariants = {
59 | hidden: {
60 | opacity: 0,
61 | },
62 | show: {
63 | opacity: 1,
64 | },
65 | };
66 |
67 | const CoverVideo = () => {
68 | return (
69 |
70 |
71 |
76 |
77 |
83 | Crue Creative
84 |
85 |
86 |
87 |
88 |
89 |
90 | );
91 | };
92 |
93 | export default CoverVideo;
94 |
--------------------------------------------------------------------------------
/src/components/Loader.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styled from 'styled-components';
3 | import { motion } from 'framer-motion';
4 | import "./loader.css";
5 | const Container = styled(motion.div)`
6 | position: absolute;
7 |
8 | touch-action: none;
9 | overflow: hidden;
10 |
11 | width: 100vw;
12 | height: 100vh;
13 |
14 | z-index: 6;
15 |
16 | display: flex;
17 | flex-direction: column;
18 | justify-content: center;
19 | align-items: center;
20 |
21 | background-color: ${(props) => props.theme.body};
22 | color: ${(props) => props.theme.text};
23 |
24 | svg {
25 | width: 10vw;
26 | height: auto;
27 | overflow: visible;
28 | stroke-linejoin: round;
29 | stroke-linecap: round;
30 |
31 | g {
32 | path {
33 | stroke: ${(props) => props.theme.text};
34 | }
35 | }
36 | }
37 | `;
38 |
39 | const Text = styled(motion.span)`
40 | font-size: ${(props) => props.theme.fontxl};
41 | color: ${(props) => props.theme.text};
42 | padding-top: 0.5rem;
43 | `;
44 |
45 | const textVariants = {
46 | hidden: {
47 | opacity: 0,
48 | },
49 | visible: {
50 | opacity: 1,
51 |
52 | transition: {
53 | duration: 1,
54 | yoyo: Infinity,
55 | ease: 'easeInOut',
56 | },
57 | },
58 | };
59 |
60 | const pathVariants = {
61 | hidden: {
62 | opacity: 0,
63 | pathLength: 0,
64 | },
65 | visible: {
66 | opacity: 1,
67 | pathLength: 1,
68 |
69 | transition: {
70 | duration: 4,
71 | ease: 'easeInOut',
72 | },
73 | },
74 | };
75 |
76 | const Loader = () => {
77 | return (
78 |
91 |
92 |
98 | Crue Creative
99 |
100 |
101 |
106 | A Creative & Digital Studio Based in Sri Lanka
107 |
108 |
109 | );
110 | };
111 |
112 | export default Loader;
113 |
--------------------------------------------------------------------------------
/src/components/Logo.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import { Link } from 'react-router-dom';
3 | import { motion } from 'framer-motion';
4 | import imga from "../assets/img/f1.png";
5 | const Container = styled.div`
6 | `;
7 |
8 | const TextWrapper = styled(motion.span)`
9 |
10 | .bar-nav{
11 | position:absolute;
12 | z-index:99;
13 | }
14 | ul {
15 | list-style-type: none;
16 | margin: 0;
17 | padding: 0;
18 | overflow: hidden;
19 | background-color: #ffffff;
20 | border-radius: 20px;
21 | position: fixed;
22 | left: 5px;
23 | top: 10px;
24 | width: 99%;
25 | }
26 |
27 | li {
28 | float: right;
29 | }
30 | li a:hover{
31 | color: rgb(187, 161, 122);
32 |
33 | }
34 | li a {
35 | font-family: 'Albert Sans', sans-serif;
36 | display: block;
37 | color: #000000;
38 | text-align: center;
39 | padding: 14px 16px;
40 | text-decoration: none;
41 | }
42 | li a:after {
43 | content: '';
44 | position: absolute;
45 | width: 100%;
46 | transform: scaleX(0);
47 | height: 3px;
48 | bottom: 0;
49 | left: 0;
50 | background-color: #000000;
51 | transform-origin: bottom right;
52 | transition: transform 0.25s ease-out;
53 | }
54 |
55 | li a:hover:after{
56 |
57 | transform: scaleX(1);
58 | transform-origin: bottom left;
59 | }
60 |
61 |
62 |
63 | .logo-av{
64 | position:absolute;
65 | top: -57.5px;
66 | left: 5px;
67 | height: 160px;
68 | width: 160px;
69 |
70 | }
71 |
72 | `;
73 |
74 | const textVariants = {
75 | hidden: {
76 | opacity: 0,
77 | pathLength: 0,
78 | x: -10,
79 | },
80 | visible: {
81 | opacity: 1,
82 | pathLength: 1,
83 | x: -5,
84 | transition: {
85 | duration: 1,
86 | delay: 2,
87 | ease: 'easeInOut',
88 | },
89 | },
90 | };
91 |
92 | const pathVariants = {
93 | hidden: {
94 | opacity: 0,
95 | pathLength: 0,
96 | },
97 | visible: {
98 | opacity: 1,
99 | pathLength: 1,
100 | transition: {
101 | duration: 1,
102 | delay: 2,
103 | ease: 'easeInOut',
104 | },
105 | },
106 | };
107 |
108 | const Logo = () => {
109 | return (
110 |
111 |
112 |
113 |
118 |
130 |
131 |
132 |
133 |
134 | );
135 | };
136 |
137 | export default Logo;
138 |
--------------------------------------------------------------------------------
/src/components/ScrollTriggerProxy.jsx:
--------------------------------------------------------------------------------
1 | // To use gsap with locomotive scroll, we have to use scroller proxy provided by gsap
2 | import gsap from 'gsap';
3 | import ScrollTrigger from 'gsap/ScrollTrigger';
4 | import { useEffect } from 'react';
5 | import { useLocomotiveScroll } from 'react-locomotive-scroll';
6 |
7 | const ScrollTriggerProxy = () => {
8 | // first let's get instance of locomotive scroll
9 |
10 | const { scroll } = useLocomotiveScroll();
11 | // Register scroll trigger plugin
12 | gsap.registerPlugin(ScrollTrigger);
13 |
14 | useEffect(() => {
15 | if (scroll) {
16 | const element = scroll?.el; // locomotive scrolling element, in our case it's app (main)
17 |
18 | scroll.on('scroll', ScrollTrigger.update); // on scroll of locomotive, update scrolltrigger
19 |
20 | // let's use scroller proxy
21 | ScrollTrigger.scrollerProxy(element, {
22 | scrollTop(value) {
23 | return arguments.length
24 | ? scroll.scrollTo(value, 0, 0)
25 | : scroll.scroll.instance.scroll.y;
26 | }, // we don't have to define a scrollLeft because we're only scrolling vertically.
27 | getBoundingClientRect() {
28 | return {
29 | top: 0,
30 | left: 0,
31 | width: window.innerWidth,
32 | height: window.innerHeight,
33 | };
34 | },
35 | // LocomotiveScroll handles things completely differently on mobile devices - it doesn't even transform the container at all! So to get the correct behavior and avoid jitters, we should pin things with position: fixed on mobile. We sense it by checking to see if there's a transform applied to the container (the LocomotiveScroll-controlled element).
36 | pinType: element.style.transform ? 'transform' : 'fixed',
37 | });
38 | }
39 |
40 | return () => {
41 | ScrollTrigger.addEventListener('refresh', () =>
42 | scroll?.update()
43 | );
44 | ScrollTrigger.refresh();
45 | };
46 | }, [scroll]);
47 |
48 | return null;
49 | };
50 |
51 | export default ScrollTriggerProxy;
52 |
--------------------------------------------------------------------------------
/src/components/cover.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Albert+Sans:wght@300&family=Philosopher&display=swap');
2 | @font-face {
3 | font-family: domaine;
4 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
5 | }
6 |
7 | .cover-head-vid{
8 | font-family: 'Albert Sans', sans-serif;
9 | font-size: 10em;
10 | color: whitesmoke;
11 | }
12 |
13 | .vr{
14 | background-color:rgb(248, 236, 219)
15 | }
--------------------------------------------------------------------------------
/src/components/loader.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: domaine;
3 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
4 | }
5 | .load-head{
6 | font-size: 2em;
7 | position: absolute;
8 | top: 50%;
9 | left: 50%;
10 | transform: translate(-50%, -50%);
11 | font-family: domaine;
12 | }
13 |
14 | .small-text-load{
15 | text-align: center;
16 | font-family: domaine;
17 | font-size: 0.4em;
18 | }
--------------------------------------------------------------------------------
/src/components/nav.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Albert+Sans:wght@300&family=Philosopher&display=swap');
2 | @font-face {
3 | font-family: domaine;
4 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/sections/About.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import "./about.css";
3 | const SectionWrapper = styled.section`
4 | min-height: 100vh;
5 | width: 100vw;
6 | position: relative;
7 | background-color: #000000;
8 | display: flex;
9 | margin: 0 auto;
10 | color: white;
11 | font-family: 'Albert Sans', sans-serif;
12 |
13 | `;
14 |
15 | const TextWrapper = styled.div`
16 | z-index: 10;
17 | `;
18 |
19 | const TitleWrapper = styled.span`
20 | position: absolute;
21 | top: 50%;
22 | z-index: 10;
23 | font-family: domaine;
24 | `;
25 |
26 | const LeftContainer = styled.div`
27 | width: 100%;
28 | text-align:center;
29 | top: 40%;
30 | left:50%
31 | font-size:1.5em;
32 | position: absolute;
33 | text-transform:uppercase;
34 | z-index: 10;
35 | `;
36 | const RightContainer = styled.div`
37 | width: 35%;
38 | position: relative;
39 | margin-right: auto;
40 | margin-top: auto;
41 | margin-bottom: auto;
42 | img {
43 | width: 100%;
44 | height: auto;
45 | border-radius: 2%;
46 | }
47 |
48 | .small-img-1 {
49 | width: 40%;
50 | position: absolute;
51 | right: 80%;
52 | bottom: 10%;
53 | }
54 | .small-img-2 {
55 | width: 40%;
56 | position: absolute;
57 | left: 80%;
58 | bottom: 30%;
59 | }
60 |
61 | `;
62 |
63 | const Home = () => {
64 | return (
65 |
66 |
67 |
68 |
73 | "Creative and ingenious, Crue Creative LK
74 | has a way of making a simple idea/brand
75 | come to full bloom"
76 |
77 | - a crue creative statement
78 |
79 |
80 |
81 | born in sri lanka
83 |
84 |
85 | );
86 | };
87 |
88 | export default Home;
89 |
--------------------------------------------------------------------------------
/src/components/sections/Banner.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import "./banner.css";
3 | import ban01 from '../../assets/img/pod01.png';
4 | import ban02 from '../../assets/img/pod02.png';
5 | import ban03 from '../../assets/img/pod03.png';
6 | import ban04 from '../../assets/img/pod04.png';
7 | const SectionWrapper = styled.section`
8 | min-height: 100vh;
9 | width: 100vw;
10 | position: relative;
11 | display: flex;
12 | justify-content: center;
13 | align-items: center;
14 | background-color:black;
15 | z-index: 12;
16 | `;
17 |
18 | const Container = styled.div`
19 | min-height: 100vh;
20 |
21 | display: flex;
22 | flex-direction: column;
23 | justify-content: center;
24 | align-items: center;
25 | gap: 40px;
26 | `;
27 |
28 | const BannerComponent = styled.p`
29 | font-size: ${(props) => props.theme.fontxxxl};
30 | font-family: 'Lora', serif;
31 |
32 | color: ${(props) => props.theme.text};
33 | white-space: nowrap;
34 | text-transform: uppercase;
35 | line-height: 1;
36 | span {
37 | display: block;
38 | background-color: ${(props) => props.theme.body};
39 | padding: 1rem 2rem;
40 | }
41 | `;
42 |
43 | const Banner = () => {
44 | return (
45 |
46 |
47 |
48 |
54 |
55 |
56 |
57 |
63 |
64 |
65 |
66 |
72 |
73 |
74 |
75 |
81 |
82 |
83 |
84 |
85 | );
86 | };
87 |
88 | export default Banner;
89 |
--------------------------------------------------------------------------------
/src/components/sections/Footer.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import styled from 'styled-components';
3 | import { useLocomotiveScroll } from 'react-locomotive-scroll';
4 | import "./foot.css";
5 | const SectionWrapper = styled.section`
6 | min-height: 90vh;
7 | width: 100vw;
8 | display: flex;
9 | flex-direction: column;
10 | justify-content: center;
11 | align-items: center;
12 |
13 | background-color: black;
14 | color:whitesmoke
15 |
16 | position: relative;
17 | `;
18 | const LogoContainer = styled.div`
19 | font-family: domaine;
20 | display: flex;
21 | flex-direction: column;
22 | justify-content: center;
23 | align-items: center;
24 |
25 | img {
26 | width: 10vw;
27 | height: auto;
28 | }
29 | h3 {
30 | font-family: domaine;
31 | font-size: 3em;
32 | }
33 | `;
34 | const Bottom = styled.div`
35 | font-family: domaine;
36 | color: white;
37 | font-size:1em;
38 | `;
39 |
40 | const Footer = () => {
41 | const { scroll } = useLocomotiveScroll();
42 |
43 | const handleScroll = (id) => {
44 | let elem = document.querySelector(id);
45 |
46 | scroll.scrollTo(elem, {
47 | offset: '-100',
48 | duration: '2000',
49 | easing: [0.25, 0.0, 0.35, 1.0],
50 | });
51 | };
52 |
53 | return (
54 |
55 |
56 |
57 |
58 | Crue Creative
59 |
60 |
61 |
62 |
63 |
68 | © {new Date().getFullYear()}. All Rights Reserved 2022
69 |
70 |
75 | Crafted by -
76 |
81 | @chaniru.lk
82 |
83 |
84 |
85 |
86 | );
87 | };
88 |
89 | export default Footer;
90 |
--------------------------------------------------------------------------------
/src/components/sections/Home.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import CoverVideo from '../CoverVideo';
3 | import Logo from '../Logo';
4 |
5 | const SectionWrapper = styled.section`
6 | min-height: 100vh;
7 | width: 100vw;
8 | position: relative;
9 | overflow: hidden;
10 | `;
11 |
12 | const Home = () => {
13 | return (
14 |
15 |
16 |
17 |
18 | );
19 | };
20 |
21 | export default Home;
22 |
--------------------------------------------------------------------------------
/src/components/sections/Second.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import "./second.css";
3 | import img01 from '../../assets/img/1.png';
4 | import img02 from '../../assets/img/2.png';
5 | import img03 from '../../assets/img/3.png';
6 | import img04 from '../../assets/img/41.png';
7 | import img05 from '../../assets/img/5.png';
8 | import img06 from '../../assets/img/6.png';
9 | import img09 from '../../assets/img/9.png';
10 | const SectionWrapper = styled.section`
11 | min-height: 150vh;
12 | width: 100%;
13 | position: relative;
14 | background-color: #000000;
15 | display: flex;
16 | margin: 0 auto;
17 | color: white;
18 | font-family: 'Albert Sans', sans-serif;
19 | `;
20 |
21 | const TextWrapper = styled.div`
22 | z-index: 10;
23 | @media (max-width: 768px) {
24 | display: none;
25 | }
26 | `;
27 |
28 | const LeftContainer = styled.div`
29 | z-index: 10;
30 | overflow: hidden;
31 | width:1000px;
32 |
33 | `;
34 |
35 | const Home = () => {
36 | return (
37 |
38 |
42 | Caron
46 |
50 |
51 | Amana
55 |
59 |
60 | TwentySix
64 |
68 |
69 | PARADIS
73 |
77 |
78 | NUTMEG.GINGER
82 |
86 |
87 | Aymddesigns
91 |
95 |
96 | Agnes
100 |
104 |
105 |
106 |
107 |
108 | MAKE A GLOBAL IMPACT
109 | ACROSS DIFFERENT VERTICLES
110 |
111 |
112 |
113 |
114 | );
115 | };
116 |
117 | export default Home;
118 |
--------------------------------------------------------------------------------
/src/components/sections/Third.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import "./new.css";
3 | const SectionWrapper = styled.section`
4 | min-height: 100vh;
5 | width: 100vw;
6 | position: relative;
7 | background-color: #000000;
8 | display: flex;
9 | margin: 0 auto;
10 | color: white;
11 | font-family: 'Albert Sans', sans-serif;
12 |
13 | `;
14 |
15 | const TextWrapper = styled.div`
16 | z-index: 10;
17 | `;
18 |
19 | const LeftContainer = styled.div`
20 | width: 100%;
21 | text-align:center;
22 | top: 40%;
23 | left:50%
24 | font-size:1.5em;
25 | position: absolute;
26 | text-transform:uppercase;
27 | z-index: 10;
28 | `;
29 |
30 | const Home = () => {
31 | return (
32 |
33 |
34 |
35 |
40 |
42 | Cure creative is a digital agecny based in Sri Lanka
43 | our aim is to win awwwards as being part of its community
44 | Not just awwwards to, we won't to provide our customers with
45 | the best digital experience they could ever imagine of.
46 |
47 |
48 |
49 |
50 | WORK WITH US
52 |
53 |
54 | );
55 | };
56 |
57 | export default Home;
58 |
--------------------------------------------------------------------------------
/src/components/sections/about.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: domaine;
3 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
4 | }
5 | .small-left{
6 | font-size: 10px;
7 | }
8 | .header-sl{
9 | position: absolute;
10 | font-family: domaine;
11 | text-transform: uppercase;
12 | font-size: 8em;
13 | top: 60%;
14 | left: 5%;
15 | }
--------------------------------------------------------------------------------
/src/components/sections/banner.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: domaine;
3 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
4 | }
5 | .ban-pic{
6 | height: 400px;
7 | width: auto;
8 | }
--------------------------------------------------------------------------------
/src/components/sections/foot.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: domaine;
3 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
4 | }
5 | .credit{
6 | position: absolute;
7 | font-family: domaine;
8 | font-size: 1.5em;
9 | color: whitesmoke;
10 | left: 10%;
11 | }
12 | .link-ig{
13 | position: absolute;
14 | font-family: domaine;
15 | font-size: 1.5em;
16 | color: whitesmoke;
17 | right: 10%;
18 | }
19 | .link-ig a{
20 | font-family: Arial, Helvetica, sans-serif;
21 | }
--------------------------------------------------------------------------------
/src/components/sections/new.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: domaine;
3 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
4 | }
5 | .header-sl-new{
6 | position: absolute;
7 | font-family: domaine;
8 | text-transform: uppercase;
9 | font-size: 10em;
10 | top: 68%;
11 | left: 5%;
12 | }
13 | .end-tezxt{
14 | position: absolute;
15 | font-size: 1.2em;
16 | font-family: domaine;
17 | top: 2%;
18 | left: 25%;
19 | }
--------------------------------------------------------------------------------
/src/components/sections/second.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: domaine;
3 | src: url(/src/assets/font/Domaine\ Sans\ Fine\ Regular\ Regular.woff);
4 | }
5 | .acros-left{
6 | position: absolute;
7 | font-family: domaine;
8 | font-size: 5em;
9 | text-transform: uppercase;
10 | text-align: left;
11 | top: 80%;
12 | left: 2%;
13 | line-height: 70px;
14 | }
15 | .prod-one{
16 | position: absolute;
17 | left: 5%;
18 | top: 40%;
19 | height: auto;
20 | width: 300px;
21 | filter: grayscale(100%);
22 | -webkit-filter: grayscale(100%);
23 | transition: 0.5s ease-in-out;
24 | }
25 | .prod-one:hover{
26 | filter: none;
27 | -webkit-filter: grayscale(0);
28 | transition: 0.5s ease-in-out;
29 | }
30 | .prod-text-one{
31 | font-family: domaine;
32 | text-align: center;
33 | font-size: 2em;
34 | color: white;
35 | left: 5%;
36 | top: 32%;
37 | position: absolute;
38 | text-decoration: none;
39 | }
40 | .prod-two{
41 | position: absolute;
42 | right: 5%;
43 | top: 20%;
44 | height: auto;
45 | width: 300px;
46 | filter: grayscale(100%);
47 | -webkit-filter: grayscale(100%);
48 | transition: 0.5s ease-in-out;
49 | }
50 | .prod-two:hover{
51 | filter: none;
52 | -webkit-filter: grayscale(0);
53 | transition: 0.5s ease-in-out;
54 | }
55 | .prod-text-two{
56 | font-family: domaine;
57 | text-align: center;
58 | font-size: 2em;
59 | color: white;
60 | right: 5%;
61 | top: 15%;
62 | position: absolute;
63 | text-decoration: none;
64 | }
65 | .prod-three{
66 | position: absolute;
67 | left: 30%;
68 | top: 20%;
69 | height: auto;
70 | width: 300px;
71 | filter: grayscale(100%);
72 | -webkit-filter: grayscale(100%);
73 | transition: 0.5s ease-in-out;
74 | }
75 | .prod-three:hover{
76 | filter: none;
77 | -webkit-filter: grayscale(0);
78 | transition: 0.5s ease-in-out;
79 | }
80 | .prod-text-three{
81 | font-family: domaine;
82 | text-align: center;
83 | font-size: 2em;
84 | color: white;
85 | left: 30%;
86 | top: 15%;
87 | position: absolute;
88 | text-decoration: none;
89 | }
90 | .prod-four{
91 | position: absolute;
92 | left: 30%;
93 | top: 60%;
94 | height: auto;
95 | width: 350px;
96 | }
97 | .prod-text-four{
98 | font-family: domaine;
99 | text-align: center;
100 | font-size: 2em;
101 | color: white;
102 | left: 45%;
103 | top: 54%;
104 | position: absolute;
105 | text-decoration: none;
106 | }
107 | .prod-five{
108 | position: absolute;
109 | left: 60%;
110 | top: 6%;
111 | height: 270px;
112 | width: auto;
113 | filter: grayscale(100%);
114 | -webkit-filter: grayscale(100%);
115 | transition: 0.5s ease-in-out;
116 | }
117 | .prod-five:hover{
118 | filter: none;
119 | -webkit-filter: grayscale(0);
120 | transition: 0.5s ease-in-out;
121 | }
122 | .prod-text-five{
123 | font-family: domaine;
124 | text-align: center;
125 | font-size: 2em;
126 | color: white;
127 | left: 55%;
128 | top: 3%;
129 | position: absolute;
130 | text-decoration: none;
131 | }
132 | .prod-six{
133 | position: absolute;
134 | left: 60%;
135 | top: 50%;
136 | height: 270px;
137 | width: auto;
138 | filter: grayscale(100%);
139 | -webkit-filter: grayscale(100%);
140 | transition: 0.5s ease-in-out;
141 | }
142 | .prod-six:hover{
143 | filter: none;
144 | -webkit-filter: grayscale(0);
145 | transition: 0.5s ease-in-out;
146 | }
147 | .prod-text-six{
148 | font-family: domaine;
149 | text-align: center;
150 | font-size: 2em;
151 | color: white;
152 | left: 70%;
153 | top: 50%;
154 | position: absolute;
155 | text-decoration: none;
156 | }
157 | .prod-seven{
158 | position: absolute;
159 | left: 80%;
160 | top: 60%;
161 | height: 270px;
162 | width: auto;
163 | filter: grayscale(100%);
164 | -webkit-filter: grayscale(100%);
165 | transition: 0.5s ease-in-out;
166 | }
167 | .prod-seven:hover{
168 | filter: none;
169 | -webkit-filter: grayscale(0);
170 | transition: 0.5s ease-in-out;
171 | }
172 | .prod-text-seven{
173 | font-family: domaine;
174 | text-align: center;
175 | font-size: 2em;
176 | color: white;
177 | left: 86%;
178 | top: 58%;
179 | position: absolute;
180 | text-decoration: none;
181 | }
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 |
4 | import App from './App';
5 | import { BrowserRouter as Router } from 'react-router-dom';
6 |
7 | ReactDOM.render(
8 |
9 |
10 |
11 |
12 | ,
13 | document.getElementById('root')
14 | );
15 |
--------------------------------------------------------------------------------
/src/styles/GlobalStyles.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components';
2 | import '@fontsource/lora';
3 | import '@fontsource/monda';
4 |
5 | const GlobalStyles = createGlobalStyle`
6 | *,*::before, *::after,h1,h2,h3,h4,h5,h6 {
7 | margin: 0;
8 | padding: 0;
9 | }
10 | *{
11 | box-sizing: border-box;
12 | }
13 | body {
14 | font-family: "Monda", sans-serif;
15 | overflow-x: hidden;
16 | }
17 |
18 | a {
19 | color: inherit;
20 | text-decoration: none;
21 | font-family: "Monda", sans-serif;
22 | }
23 |
24 | h1,h2,h3,h4,h5,h6 {
25 | line-height: 1.7;
26 | }
27 |
28 | p {
29 | line-height: 2;
30 | }
31 | `;
32 |
33 | export default GlobalStyles;
34 |
--------------------------------------------------------------------------------
/src/styles/Themes.js:
--------------------------------------------------------------------------------
1 | export const light = {
2 | body: '#fff',
3 | text: '#202020',
4 | bodyRgba: '255, 255, 255',
5 | textRgba: '32,32,32',
6 |
7 | grey: '#ebebeb',
8 |
9 | fontxs: '0.75em',
10 | fontsm: '0.875em',
11 | fontmd: '1em', // 1em = 16px
12 | fontlg: '1.25em',
13 | fontxl: '2em',
14 | fontxxl: '3em',
15 | fontxxxl: '4em',
16 |
17 | fontButton: '0.875em',
18 |
19 | navHeight: '5rem',
20 | };
21 |
22 | export const dark = {
23 | body: '#000000',
24 | text: '#fff',
25 | textRgba: '255, 255, 255',
26 | bodyRgba: '32,32,32',
27 |
28 | grey: '#ebebeb',
29 |
30 | fontxs: '0.75em',
31 | fontsm: '0.875em',
32 | fontmd: '1em', // 1em = 16px
33 | fontlg: '1.25em',
34 | fontxl: '2em',
35 | fontxxl: '3em',
36 | fontxxxl: '4em',
37 |
38 | fontButton: '0.875em',
39 |
40 | navHeight: '5rem',
41 | };
42 |
--------------------------------------------------------------------------------