refactor: remove unused audience images and add Media Kit page route
- Deleted 8 audience images from public/images/audience/ directory (1.jpg through 8.jpg) - Deleted 8 audience images from public/images/audiences/ directory (1.jpg through 8.jpg) - Added lazy-loaded MediaPage route at /mediakit path in App.tsx - Added Media Kit navigation link to Footer component with hover styling
|
Before Width: | Height: | Size: 306 KiB |
|
Before Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 234 KiB |
|
Before Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 229 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 184 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 182 KiB |
BIN
public/images/mediakit/logo_dark.zip
Normal file
BIN
public/images/mediakit/logo_dark/logo_dark.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
1
public/images/mediakit/logo_dark/logo_dark.svg
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
public/images/mediakit/logo_dark/logomark.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
1
public/images/mediakit/logo_dark/logomark.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" zoomAndPan="magnify" viewBox="0 0 75 74.999997" height="100" preserveAspectRatio="xMidYMid meet" version="1.0"><defs><clipPath id="17cc7c511f"><path d="M 0.679688 0.28125 L 48.441406 0.28125 L 48.441406 5 L 0.679688 5 Z M 0.679688 0.28125 " clip-rule="nonzero"/></clipPath><clipPath id="871aafab52"><path d="M 0.679688 36 L 48.441406 36 L 48.441406 40.601562 L 0.679688 40.601562 Z M 0.679688 36 " clip-rule="nonzero"/></clipPath><clipPath id="08bb39558f"><rect x="0" width="49" y="0" height="41"/></clipPath></defs><g transform="matrix(1, 0, 0, 1, 13, 17)"><g clip-path="url(#08bb39558f)"><g clip-path="url(#17cc7c511f)"><path stroke-linecap="butt" transform="matrix(0.559221, 0, 0, 0.559221, 3.099571, 0.434943)" fill="none" stroke-linejoin="miter" d="M -0.00342307 4.000082 L 76.539934 4.000082 " stroke="#22d3ee" stroke-width="8" stroke-opacity="1" stroke-miterlimit="4"/></g><path fill="#22d3ee" d="M 3.097656 18.003906 L 29.941406 18.003906 L 29.941406 22.480469 L 3.097656 22.480469 M 34.414062 18.003906 L 45.902344 18.003906 L 45.902344 22.480469 L 34.414062 22.480469 " fill-opacity="1" fill-rule="nonzero"/><g clip-path="url(#871aafab52)"><path stroke-linecap="butt" transform="matrix(0.559221, 0, 0, 0.559221, 3.099571, 36.091279)" fill="none" stroke-linejoin="miter" d="M -0.00342307 3.999929 L 76.539934 3.999929 " stroke="#22d3ee" stroke-width="8" stroke-opacity="1" stroke-miterlimit="4"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/mediakit/logo_light.zip
Normal file
BIN
public/images/mediakit/logo_light/logo.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
1
public/images/mediakit/logo_light/logo.svg
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
public/images/mediakit/logo_light/logomark.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
1
public/images/mediakit/logo_light/logomark.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" zoomAndPan="magnify" viewBox="0 0 75 74.999997" height="100" preserveAspectRatio="xMidYMid meet" version="1.0"><defs><clipPath id="17cc7c511f"><path d="M 0.679688 0.28125 L 48.441406 0.28125 L 48.441406 5 L 0.679688 5 Z M 0.679688 0.28125 " clip-rule="nonzero"/></clipPath><clipPath id="871aafab52"><path d="M 0.679688 36 L 48.441406 36 L 48.441406 40.601562 L 0.679688 40.601562 Z M 0.679688 36 " clip-rule="nonzero"/></clipPath><clipPath id="08bb39558f"><rect x="0" width="49" y="0" height="41"/></clipPath></defs><g transform="matrix(1, 0, 0, 1, 13, 17)"><g clip-path="url(#08bb39558f)"><g clip-path="url(#17cc7c511f)"><path stroke-linecap="butt" transform="matrix(0.559221, 0, 0, 0.559221, 3.099571, 0.434943)" fill="none" stroke-linejoin="miter" d="M -0.00342307 4.000082 L 76.539934 4.000082 " stroke="#22d3ee" stroke-width="8" stroke-opacity="1" stroke-miterlimit="4"/></g><path fill="#22d3ee" d="M 3.097656 18.003906 L 29.941406 18.003906 L 29.941406 22.480469 L 3.097656 22.480469 M 34.414062 18.003906 L 45.902344 18.003906 L 45.902344 22.480469 L 34.414062 22.480469 " fill-opacity="1" fill-rule="nonzero"/><g clip-path="url(#871aafab52)"><path stroke-linecap="butt" transform="matrix(0.559221, 0, 0, 0.559221, 3.099571, 36.091279)" fill="none" stroke-linejoin="miter" d="M -0.00342307 3.999929 L 76.539934 3.999929 " stroke="#22d3ee" stroke-width="8" stroke-opacity="1" stroke-miterlimit="4"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -12,6 +12,7 @@ const StoragePage = lazy(() => import('./pages/storage/StoragePage'));
|
||||
const GpuPage = lazy(() => import('./pages/gpu/GpuPage'));
|
||||
const PodsPage = lazy(() => import('./pages/pods/PodsPage'));
|
||||
const NodesPage = lazy(() => import('./pages/nodes/NodesPage'));
|
||||
const MediaPage = lazy(() => import('./pages/mediakit/MediaPage'));
|
||||
|
||||
function ScrollToTop() {
|
||||
const { pathname, hash } = useLocation();
|
||||
@@ -49,6 +50,7 @@ function App() {
|
||||
<Route path="gpu" element={<GpuPage />} />
|
||||
<Route path="pods" element={<PodsPage />} />
|
||||
<Route path="nodes" element={<NodesPage />} />
|
||||
<Route path="mediakit" element={<MediaPage />} />
|
||||
</Route>
|
||||
</Routes>
|
||||
</Suspense>
|
||||
|
||||
BIN
src/assets/fonts/Mulish.zip
Normal file
BIN
src/assets/fonts/Mulish/Mulish-Italic-VariableFont_wght.ttf
Normal file
BIN
src/assets/fonts/Mulish/Mulish-VariableFont_wght.ttf
Normal file
93
src/assets/fonts/Mulish/OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2016 The Mulish Project Authors (https://github.com/googlefonts/mulish)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
79
src/assets/fonts/Mulish/README.txt
Normal file
@@ -0,0 +1,79 @@
|
||||
Mulish Variable Font
|
||||
====================
|
||||
|
||||
This download contains Mulish as both variable fonts and static fonts.
|
||||
|
||||
Mulish is a variable font with this axis:
|
||||
wght
|
||||
|
||||
This means all the styles are contained in these files:
|
||||
Mulish/Mulish-VariableFont_wght.ttf
|
||||
Mulish/Mulish-Italic-VariableFont_wght.ttf
|
||||
|
||||
If your app fully supports variable fonts, you can now pick intermediate styles
|
||||
that aren’t available as static fonts. Not all apps support variable fonts, and
|
||||
in those cases you can use the static font files for Mulish:
|
||||
Mulish/static/Mulish-ExtraLight.ttf
|
||||
Mulish/static/Mulish-Light.ttf
|
||||
Mulish/static/Mulish-Regular.ttf
|
||||
Mulish/static/Mulish-Medium.ttf
|
||||
Mulish/static/Mulish-SemiBold.ttf
|
||||
Mulish/static/Mulish-Bold.ttf
|
||||
Mulish/static/Mulish-ExtraBold.ttf
|
||||
Mulish/static/Mulish-Black.ttf
|
||||
Mulish/static/Mulish-ExtraLightItalic.ttf
|
||||
Mulish/static/Mulish-LightItalic.ttf
|
||||
Mulish/static/Mulish-Italic.ttf
|
||||
Mulish/static/Mulish-MediumItalic.ttf
|
||||
Mulish/static/Mulish-SemiBoldItalic.ttf
|
||||
Mulish/static/Mulish-BoldItalic.ttf
|
||||
Mulish/static/Mulish-ExtraBoldItalic.ttf
|
||||
Mulish/static/Mulish-BlackItalic.ttf
|
||||
|
||||
Get started
|
||||
-----------
|
||||
|
||||
1. Install the font files you want to use
|
||||
|
||||
2. Use your app's font picker to view the font family and all the
|
||||
available styles
|
||||
|
||||
Learn more about variable fonts
|
||||
-------------------------------
|
||||
|
||||
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
||||
https://variablefonts.typenetwork.com
|
||||
https://medium.com/variable-fonts
|
||||
|
||||
In desktop apps
|
||||
|
||||
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
||||
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
||||
|
||||
Online
|
||||
|
||||
https://developers.google.com/fonts/docs/getting_started
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
||||
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
||||
|
||||
Installing fonts
|
||||
|
||||
MacOS: https://support.apple.com/en-us/HT201749
|
||||
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
||||
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||
|
||||
Android Apps
|
||||
|
||||
https://developers.google.com/fonts/docs/android
|
||||
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
||||
|
||||
License
|
||||
-------
|
||||
Please read the full license text (OFL.txt) to understand the permissions,
|
||||
restrictions and requirements for usage, redistribution, and modification.
|
||||
|
||||
You can use them in your products & projects – print or digital,
|
||||
commercial or otherwise.
|
||||
|
||||
This isn't legal advice, please consider consulting a lawyer and see the full
|
||||
license for all details.
|
||||
BIN
src/assets/fonts/Mulish/static/Mulish-Black.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-BlackItalic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-Bold.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-BoldItalic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-ExtraBold.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-ExtraBoldItalic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-ExtraLight.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-ExtraLightItalic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-Italic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-Light.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-LightItalic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-Medium.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-MediumItalic.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-Regular.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-SemiBold.ttf
Normal file
BIN
src/assets/fonts/Mulish/static/Mulish-SemiBoldItalic.ttf
Normal file
@@ -30,6 +30,9 @@ export function Footer() {
|
||||
<Link to="/nodes" className="text-sm text-gray-700 hover:text-cyan-500 transition-colors">
|
||||
Nodes
|
||||
</Link>
|
||||
<Link to="/mediakit" className="text-sm text-gray-700 hover:text-cyan-500 transition-colors">
|
||||
Media Kit
|
||||
</Link>
|
||||
</nav>
|
||||
</div>
|
||||
<div className="group relative -mx-4 flex items-center self-stretch p-4 transition-colors hover:bg-gray-100 sm:self-auto sm:rounded-2xl lg:mx-0 lg:self-auto lg:p-6">
|
||||
|
||||
137
src/pages/mediakit/MediaColors.tsx
Normal file
@@ -0,0 +1,137 @@
|
||||
'use client'
|
||||
|
||||
import { Eyebrow, H3, P, H4, CT, CP } from '@/components/Texts'
|
||||
|
||||
const logo_light = [
|
||||
{
|
||||
id: "logomark_svg",
|
||||
title: "Logomark (SVG)",
|
||||
image: "/images/mediakit/logo_light/logomark.svg",
|
||||
},
|
||||
{
|
||||
id: "logomark_png",
|
||||
title: "Logomark (PNG)",
|
||||
image: "/images/mediakit/logo_light/logomark.png",
|
||||
},
|
||||
{
|
||||
id: "logo_svg",
|
||||
title: "Logo (SVG)",
|
||||
image: "/images/mediakit/logo_light/logo.svg",
|
||||
},
|
||||
{
|
||||
id: "logo_png",
|
||||
title: "Logo (PNG)",
|
||||
image: "/images/mediakit/logo_light/logo.png",
|
||||
},
|
||||
]
|
||||
|
||||
const logo_dark = [
|
||||
{
|
||||
id: "logomark_svg",
|
||||
title: "Logomark (SVG)",
|
||||
image: "/images/mediakit/logo_dark/logomark.svg",
|
||||
},
|
||||
{
|
||||
id: "logomark_png",
|
||||
title: "Logomark (PNG)",
|
||||
image: "/images/mediakit/logo_dark/logomark.png",
|
||||
},
|
||||
{
|
||||
id: "logo_svg",
|
||||
title: "Logo (SVG)",
|
||||
image: "/images/mediakit/logo_dark/logo_dark.svg",
|
||||
},
|
||||
{
|
||||
id: "logo_png",
|
||||
title: "Logo (PNG)",
|
||||
image: "/images/mediakit/logo_dark/logo_dark.png",
|
||||
},
|
||||
]
|
||||
|
||||
export function MediaColors() {
|
||||
return (
|
||||
<section className="relative w-full bg-[#121212] overflow-hidden">
|
||||
{/* TOP LINE */}
|
||||
<div className="max-w-7xl bg-[#121212] mx-auto py-6 border border-t-0 border-b-0 border-gray-800"></div>
|
||||
<div className="w-full border-t border-l border-r border-gray-800" />
|
||||
{/* Inner padding */}
|
||||
<div className="max-w-7xl relative px-6 lg:px-8 py-12 bg-[#111111] border border-t-0 border-b-0 border-gray-800 max-w-7xl mx-auto">
|
||||
<H3 as="h1" className="mt-4 text-white">
|
||||
Colors
|
||||
</H3>
|
||||
{/* primary */}
|
||||
<H4 className="mt-8 text-gray-200 tracking-normal flex items-center gap-2">
|
||||
<span>Primary Colors</span>
|
||||
|
||||
</H4>
|
||||
|
||||
<div className="mt-8 grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||
<div className=" border border-gray-800 bg-[#111111] p-5 flex flex-col justify-between">
|
||||
<div>
|
||||
<CT className="text-sm font-medium text-white">Dark Gray</CT>
|
||||
<CP className="text-xs text-gray-200 mt-1">Primary background for dark surfaces and key sections.</CP>
|
||||
</div>
|
||||
<div className="mt-4 h-16 w-full border border-gray-700 bg-[#111111]" />
|
||||
<p className="mt-3 text-xs text-gray-500">Hex: #111111</p>
|
||||
</div>
|
||||
|
||||
<div className="border border-gray-800 bg-[#ffffff] p-5 flex flex-col justify-between">
|
||||
<div>
|
||||
<CT className="text-sm font-medium text-gray-900">White</CT>
|
||||
<CP className="text-xs text-gray-600 mt-1">Base surface color for light areas and content blocks.</CP>
|
||||
</div>
|
||||
<div className="mt-4 h-16 w-full border border-gray-200 bg-[#ffffff]" />
|
||||
<p className="mt-3 text-xs text-gray-500">Hex: #ffffff</p>
|
||||
</div>
|
||||
|
||||
<div className="border border-cyan-500/40 bg-[#0b1720] p-5 flex flex-col justify-between">
|
||||
<div>
|
||||
<CT className="text-sm font-medium text-cyan-300">Vivid Azure</CT>
|
||||
<CP className="text-xs text-cyan-100 mt-1">Accent color used for highlights, links, and actions.</CP>
|
||||
</div>
|
||||
<div className="mt-4 h-16 w-full bg-[#22d3ee]" />
|
||||
<p className="mt-3 text-xs text-cyan-100">Hex: #22d3ee</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<H4 className="mt-12 text-gray-200 tracking-normal flex items-center gap-2">
|
||||
<span>Secondary Colors</span>
|
||||
</H4>
|
||||
|
||||
<div className="mt-6 grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||
<div className="border border-gray-800 bg-[#121212] p-5 flex flex-col justify-between">
|
||||
<div>
|
||||
<CT className="text-sm font-medium text-gray-200">Deep Gray</CT>
|
||||
<CP className="text-xs text-gray-500 mt-1">Supporting background for overlays and dark UI elements.</CP>
|
||||
</div>
|
||||
<div className="mt-4 h-16 w-full border border-gray-700 bg-[#121212]" />
|
||||
<p className="mt-3 text-xs text-gray-500">Hex: #121212</p>
|
||||
</div>
|
||||
|
||||
<div className="border border-gray-800 bg-[#fdfdfd] p-5 flex flex-col justify-between">
|
||||
<div>
|
||||
<CT className="text-sm font-medium text-gray-900">Soft White</CT>
|
||||
<CP className="text-xs text-gray-600 mt-1">Subtle light background for sections and cards.</CP>
|
||||
</div>
|
||||
<div className="mt-4 h-16 w-full border border-gray-200 bg-[#fdfdfd]" />
|
||||
<p className="mt-3 text-xs text-gray-500">Hex: #fdfdfd</p>
|
||||
</div>
|
||||
|
||||
<div className="border border-cyan-500/40 bg-[#0b1720] p-5 flex flex-col justify-between">
|
||||
<div>
|
||||
<CT className="text-sm font-medium text-cyan-300">Dark Azure</CT>
|
||||
<CP className="text-xs text-cyan-100 mt-1">Secondary accent color for highlights and focus states.</CP>
|
||||
</div>
|
||||
<div className="mt-4 h-16 w-full bg-[#06B6D4]" />
|
||||
<p className="mt-3 text-xs text-cyan-100">Hex: #06B6D4</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{/* ✅ Bottom horizontal line with spacing */}
|
||||
<div className="w-full border-b border-gray-800" />
|
||||
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-800"></div>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
186
src/pages/mediakit/MediaHero.tsx
Normal file
@@ -0,0 +1,186 @@
|
||||
'use client'
|
||||
|
||||
import { H3, H4, P } from '@/components/Texts'
|
||||
|
||||
const logo_light = [
|
||||
{
|
||||
id: 'logomark_svg',
|
||||
title: 'Logomark (SVG)',
|
||||
image: '/images/mediakit/logo_light/logomark.svg',
|
||||
},
|
||||
{
|
||||
id: 'logomark_png',
|
||||
title: 'Logomark (PNG)',
|
||||
image: '/images/mediakit/logo_light/logomark.png',
|
||||
},
|
||||
{
|
||||
id: 'logo_svg',
|
||||
title: 'Logo (SVG)',
|
||||
image: '/images/mediakit/logo_light/logo.svg',
|
||||
},
|
||||
{
|
||||
id: 'logo_png',
|
||||
title: 'Logo (PNG)',
|
||||
image: '/images/mediakit/logo_light/logo.png',
|
||||
},
|
||||
]
|
||||
|
||||
const logo_dark = [
|
||||
{
|
||||
id: 'logomark_svg',
|
||||
title: 'Logomark (SVG)',
|
||||
image: '/images/mediakit/logo_dark/logomark.svg',
|
||||
},
|
||||
{
|
||||
id: 'logomark_png',
|
||||
title: 'Logomark (PNG)',
|
||||
image: '/images/mediakit/logo_dark/logomark.png',
|
||||
},
|
||||
{
|
||||
id: 'logo_svg',
|
||||
title: 'Logo (SVG)',
|
||||
image: '/images/mediakit/logo_dark/logo_dark.svg',
|
||||
},
|
||||
{
|
||||
id: 'logo_png',
|
||||
title: 'Logo (PNG)',
|
||||
image: '/images/mediakit/logo_dark/logo_dark.png',
|
||||
},
|
||||
]
|
||||
|
||||
export function MediaHero() {
|
||||
return (
|
||||
<div className="">
|
||||
<div className="relative mx-auto max-w-7xl border border-t-0 border-b-0 border-gray-100 bg-white overflow-hidden">
|
||||
<div className="px-6 lg:py-12">
|
||||
<div className="max-w-7xl lg:pl-6">
|
||||
<H3 as="h1" className="mt-4">
|
||||
Media Kit
|
||||
</H3>
|
||||
<P className="mt-4 text-gray-600 max-w-2xl">
|
||||
Download official Mycelium logos for light and dark backgrounds in SVG and PNG formats.
|
||||
</P>
|
||||
|
||||
<H4 className="mt-8 text-gray-800 tracking-normal flex items-center gap-2">
|
||||
<span>Mycelium Logos (Light)</span>
|
||||
<a
|
||||
href="/images/mediakit/logo_light.zip"
|
||||
download
|
||||
className="inline-flex items-center justify-center rounded-full p-1 text-gray-800 hover:text-cyan-600 hover:bg-cyan-50 transition-colors text-xs"
|
||||
aria-label="Download Mycelium light logos zip"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
className="h-12 w-12"
|
||||
>
|
||||
<path d="M10 2a.75.75 0 0 1 .75.75v8.19l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 0 1 1.06-1.06l2.22 2.22V2.75A.75.75 0 0 1 10 2Z" />
|
||||
<path d="M3.5 12.75a.75.75 0 0 1 .75.75v1.5h11.5v-1.5a.75.75 0 0 1 1.5 0v2.25a.75.75 0 0 1-.75.75H4.25A.75.75 0 0 1 3.5 15v-1.5a.75.75 0 0 1 .75-.75Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</H4>
|
||||
|
||||
<div className="mt-6 max-w-7xl mx-auto">
|
||||
<dl className="grid grid-cols-1 lg:grid-cols-4 gap-2 lg:gap-0">
|
||||
{logo_light.map((item) => (
|
||||
<div
|
||||
key={item.id}
|
||||
className="group gap-2 bg-white px-4 py-2 border border-gray-100 lg:border-t lg:border-b border-l-0.5 border-r-0.5 transition-all duration-300 ease-in-out hover:scale-[1.02] hover:border-cyan-500 hover:shadow-lg hover:shadow-cyan-500/20"
|
||||
>
|
||||
<img
|
||||
src={item.image}
|
||||
alt={item.title}
|
||||
className="h-20 w-auto object-contain opacity-90"
|
||||
/>
|
||||
<div className="text-left">
|
||||
<h3 className="flex items-center gap-2 text-base font-semibold tracking-wide text-gray-900 mb-2">
|
||||
<span>{item.title}</span>
|
||||
<a
|
||||
href={item.image}
|
||||
download
|
||||
className="inline-flex items-center justify-center rounded-full p-1 text-gray-900 hover:text-cyan-600 hover:bg-cyan-50 transition-colors"
|
||||
aria-label={`Download ${item.title}`}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
className="h-6 w-6"
|
||||
>
|
||||
<path d="M10 2a.75.75 0 0 1 .75.75v8.19l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 0 1 1.06-1.06l2.22 2.22V2.75A.75.75 0 0 1 10 2Z" />
|
||||
<path d="M3.5 12.75a.75.75 0 0 1 .75.75v1.5h11.5v-1.5a.75.75 0 0 1 1.5 0v2.25a.75.75 0 0 1-.75.75H4.25A.75.75 0 0 1 3.5 15v-1.5a.75.75 0 0 1 .75-.75Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<H4 className="mt-8 text-gray-800 tracking-normal flex items-center gap-2">
|
||||
<span>Mycelium Logos (Dark)</span>
|
||||
<a
|
||||
href="/images/mediakit/logo_dark.zip"
|
||||
download
|
||||
className="inline-flex items-center justify-center rounded-full p-1 text-gray-800 hover:text-cyan-600 hover:bg-cyan-50 transition-colors text-xs"
|
||||
aria-label="Download Mycelium dark logos zip"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
className="h-12 w-12"
|
||||
>
|
||||
<path d="M10 2a.75.75 0 0 1 .75.75v8.19l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 0 1 1.06-1.06l2.22 2.22V2.75A.75.75 0 0 1 10 2Z" />
|
||||
<path d="M3.5 12.75a.75.75 0 0 1 .75.75v1.5h11.5v-1.5a.75.75 0 0 1 1.5 0v2.25a.75.75 0 0 1-.75.75H4.25A.75.75 0 0 1 3.5 15v-1.5a.75.75 0 0 1 .75-.75Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</H4>
|
||||
|
||||
<div className="bg-[#121212] w-full max-w-8xl mx-auto mt-6">
|
||||
<dl className="grid grid-cols-1 lg:grid-cols-4 gap-2 lg:gap-0">
|
||||
{logo_dark.map((item) => (
|
||||
<div
|
||||
key={item.id}
|
||||
className="group gap-2 bg-[#121212] px-4 py-2 border border-gray-100 lg:border-t lg:border-b border-l-0.5 border-r-0.5 transition-all duration-300 ease-in-out hover:scale-[1.02] hover:border-cyan-500 hover:shadow-lg hover:shadow-cyan-500/20"
|
||||
>
|
||||
<img
|
||||
src={item.image}
|
||||
alt={item.title}
|
||||
className="h-20 w-auto object-contain opacity-90"
|
||||
/>
|
||||
<div className="text-left">
|
||||
<h3 className="flex items-center gap-2 text-base font-semibold tracking-wide text-white mb-2">
|
||||
<span>{item.title}</span>
|
||||
<a
|
||||
href={item.image}
|
||||
download
|
||||
className="inline-flex items-center justify-center rounded-full p-1 text-white hover:text-cyan-600 hover:bg-cyan-50 transition-colors"
|
||||
aria-label={`Download ${item.title}`}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
className="h-6 w-6"
|
||||
>
|
||||
<path d="M10 2a.75.75 0 0 1 .75.75v8.19l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 0 1 1.06-1.06l2.22 2.22V2.75A.75.75 0 0 1 10 2Z" />
|
||||
<path d="M3.5 12.75a.75.75 0 0 1 .75.75v1.5h11.5v-1.5a.75.75 0 0 1 1.5 0v2.25a.75.75 0 0 1-.75.75H4.25A.75.75 0 0 1 3.5 15v-1.5a.75.75 0 0 1 .75-.75Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full border-b border-gray-100" />
|
||||
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-100"></div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
23
src/pages/mediakit/MediaPage.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
import React from 'react';
|
||||
import { AnimatedSection } from '@/components/AnimatedSection';
|
||||
import { MediaHero } from './MediaHero';
|
||||
import { MediaColors } from './MediaColors';
|
||||
import { MediaType } from './MediaType';
|
||||
|
||||
const MediaPage: React.FC = () => {
|
||||
return (
|
||||
<>
|
||||
<AnimatedSection>
|
||||
<MediaHero />
|
||||
</AnimatedSection>
|
||||
<AnimatedSection>
|
||||
<MediaColors />
|
||||
</AnimatedSection>
|
||||
<AnimatedSection>
|
||||
<MediaType />
|
||||
</AnimatedSection>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default MediaPage;
|
||||
26
src/pages/mediakit/MediaType.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
'use client'
|
||||
|
||||
import { H3, P, H4 } from '@/components/Texts'
|
||||
|
||||
export function MediaType() {
|
||||
return (
|
||||
<div className="">
|
||||
{/* Boxed container */}
|
||||
<div
|
||||
className="relative mx-auto max-w-7xl border border-t-0 border-b-0 border-gray-100 bg-white overflow-hidden"
|
||||
>
|
||||
{/* Inner padding */}
|
||||
<div className="px-6 lg:py-12">
|
||||
<div className="max-w-7xl lg:pl-6">
|
||||
<H3 as="h1" className="mt-4">
|
||||
Typography
|
||||
</H3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* ✅ Bottom horizontal line with spacing */}
|
||||
<div className="w-full border-b border-gray-100" />
|
||||
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-100"></div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||