Learn Page and Content Pipeline Update #20
@@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"name": "maxNumericValue",
|
||||
"expected": 5000,
|
||||
"actual": 6316.213500000003,
|
||||
"values": [6352.161499999999, 6316.213500000003, 6810.3611],
|
||||
"operator": "<=",
|
||||
"passed": false,
|
||||
"auditId": "interactive",
|
||||
"level": "warn",
|
||||
"url": "http://127.0.0.1:3010/",
|
||||
"auditTitle": "Time to Interactive",
|
||||
"auditDocumentationLink": "https://developer.chrome.com/docs/lighthouse/performance/interactive/"
|
||||
}
|
||||
]
|
||||
@@ -1 +1 @@
|
||||
64286
|
||||
96184
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
module.exports = {
|
||||
// Test runner configuration
|
||||
testMatch: ["**/*.stories.@(js|jsx|ts|tsx)"],
|
||||
testTimeout: 30000,
|
||||
retries: 2,
|
||||
// Fix for the StorybookTestRunnerError initialization issue
|
||||
setupFilesAfterEnv: [
|
||||
"<rootDir>/node_modules/@storybook/test-runner/jest-setup.js",
|
||||
],
|
||||
// Ensure proper module resolution
|
||||
moduleNameMapping: {
|
||||
"^@/(.*)$": "<rootDir>/app/$1",
|
||||
},
|
||||
// Test environment configuration
|
||||
testEnvironment: "jsdom",
|
||||
// Transform configuration
|
||||
transform: {
|
||||
"^.+\\.(js|jsx|ts|tsx)$": [
|
||||
"babel-jest",
|
||||
{ presets: ["@babel/preset-env", "@babel/preset-react"] },
|
||||
],
|
||||
},
|
||||
// Module file extensions
|
||||
moduleFileExtensions: ["js", "jsx", "ts", "tsx", "json"],
|
||||
// Ignore patterns
|
||||
testPathIgnorePatterns: ["/node_modules/", "/.next/"],
|
||||
// Coverage configuration
|
||||
collectCoverageFrom: [
|
||||
"app/**/*.{js,jsx,ts,tsx}",
|
||||
"!app/**/*.d.ts",
|
||||
"!app/**/*.stories.{js,jsx,ts,tsx}",
|
||||
],
|
||||
};
|
||||
@@ -201,6 +201,16 @@ export default async function BlogPostPage({ params }) {
|
||||
],
|
||||
};
|
||||
|
||||
// Get article-specific background color from frontmatter
|
||||
const getBackgroundColor = (post) => {
|
||||
if (post.frontmatter?.background?.color) {
|
||||
return post.frontmatter.background.color;
|
||||
}
|
||||
return "#1F2937"; // Default fallback (dark gray)
|
||||
};
|
||||
|
||||
const backgroundColor = getBackgroundColor(post);
|
||||
|
||||
return (
|
||||
<>
|
||||
{/* Structured Data */}
|
||||
@@ -217,7 +227,10 @@ export default async function BlogPostPage({ params }) {
|
||||
}}
|
||||
/>
|
||||
|
||||
<div className="min-h-screen bg-[#F4F3F1] relative overflow-hidden">
|
||||
<div
|
||||
className="min-h-screen relative overflow-hidden"
|
||||
style={{ backgroundColor }}
|
||||
>
|
||||
{/* Content Banner */}
|
||||
<ContentBanner post={post} />
|
||||
|
||||
|
||||
@@ -4,24 +4,46 @@ import { getAssetPath } from "../../lib/assetUtils";
|
||||
import ContentContainer from "./ContentContainer";
|
||||
|
||||
export default function ContentBanner({ post }) {
|
||||
// Get article-specific horizontal thumbnail (small) and banner (md+)
|
||||
const getBackgroundImage = (post) => {
|
||||
if (post.frontmatter?.thumbnail?.horizontal) {
|
||||
return `/content/blog/${post.frontmatter.thumbnail.horizontal}`;
|
||||
}
|
||||
// Fallback to default image
|
||||
return getAssetPath("assets/Content_Banner.svg");
|
||||
};
|
||||
|
||||
const getBannerImageMd = (post) => {
|
||||
// Use banner.horizontal when provided; fallback to horizontal thumbnail
|
||||
if (post.frontmatter?.banner?.horizontal) {
|
||||
return `/content/blog/${post.frontmatter.banner.horizontal}`;
|
||||
}
|
||||
// Fallback to horizontal thumbnail, then default banner
|
||||
if (post.frontmatter?.thumbnail?.horizontal) {
|
||||
return `/content/blog/${post.frontmatter.thumbnail.horizontal}`;
|
||||
}
|
||||
return getAssetPath("assets/Content_Banner_2.svg");
|
||||
};
|
||||
|
||||
const backgroundImage = getBackgroundImage(post);
|
||||
const bannerImageMd = getBannerImageMd(post);
|
||||
|
||||
return (
|
||||
<div className="pt-[var(--measures-spacing-016)] md:pt-[var(--measures-spacing-008)] lg:pt-[50px] xl:pt-[112px] h-[275px] sm:h-[326px] md:h-[224px] lg:h-[358.4px] xl:h-[504px] relative w-full sm:overflow-hidden">
|
||||
{/* Background SVG - Default to sm breakpoint */}
|
||||
<div
|
||||
className="absolute inset-0 w-full h-full bg-cover bg-no-repeat aspect-[320/225.5]"
|
||||
style={{
|
||||
backgroundImage: `url(${getAssetPath("assets/Content_Banner.svg")})`,
|
||||
backgroundImage: `url(${backgroundImage})`,
|
||||
backgroundPosition: "center bottom",
|
||||
}}
|
||||
/>
|
||||
|
||||
{/* Background SVG - md breakpoint and above */}
|
||||
{/* Background SVG - md breakpoint and above (article banner image) */}
|
||||
<div
|
||||
className="absolute inset-0 w-full h-full bg-cover bg-no-repeat aspect-[640/224] md:block hidden"
|
||||
style={{
|
||||
backgroundImage: `url(${getAssetPath(
|
||||
"assets/Content_Banner_2.svg",
|
||||
)})`,
|
||||
backgroundImage: `url(${bannerImageMd})`,
|
||||
backgroundPosition: "center bottom",
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -48,6 +48,23 @@ const ContentLockup = ({
|
||||
shape:
|
||||
"w-[20px] h-[20px] md:w-[24px] md:h-[24px] lg:w-[28px] lg:h-[28px]",
|
||||
},
|
||||
learn: {
|
||||
container:
|
||||
"flex flex-col gap-[var(--spacing-scale-012)] relative z-10 pt-[var(--spacing-scale-016)] pb-[var(--spacing-scale-016)] px-[var(--spacing-scale-020)] sm:pt-[var(--spacing-scale-040)] sm:pb-0 md:pt-[var(--spacing-scale-056)] md:px-[var(--spacing-scale-032)] lg:pt-[var(--spacing-scale-056)] lg:px-[var(--spacing-scale-064)]",
|
||||
textContainer:
|
||||
"flex flex-col gap-[var(--spacing-scale-012)] md:gap-[var(--spacing-scale-016)]",
|
||||
titleGroup:
|
||||
"flex flex-col gap-[var(--spacing-scale-012)] md:gap-[var(--spacing-scale-016)] lg:gap-[var(--spacing-scale-008)]",
|
||||
titleContainer: "flex gap-[var(--spacing-scale-008)] items-center",
|
||||
title:
|
||||
"font-bricolage-grotesque font-medium text-[28px] leading-[36px] tracking-[0] md:text-[44px] md:leading-[110%] lg:text-[52px] text-[var(--color-content-default-primary)]",
|
||||
subtitle:
|
||||
"font-space-grotesk font-normal text-[16px] leading-[24px] tracking-[0] lg:text-[24px] lg:leading-[28px] text-[var(--color-content-default-primary)]",
|
||||
description:
|
||||
"font-inter font-normal text-[16px] leading-[140%] lg:text-[18px] lg:leading-[150%] xl:text-[20px] xl:leading-[160%] text-[var(--color-content-secondary)]",
|
||||
shape:
|
||||
"w-[20px] h-[20px] md:w-[24px] md:h-[24px] lg:w-[28px] lg:h-[28px]",
|
||||
},
|
||||
ask: {
|
||||
container: "flex flex-col gap-[var(--spacing-scale-008)] relative z-10",
|
||||
textContainer: "flex flex-col gap-[var(--spacing-scale-008)]",
|
||||
|
||||
@@ -13,36 +13,32 @@ const ContentThumbnailTemplate = ({
|
||||
post,
|
||||
className = "",
|
||||
variant = "vertical", // Internal prop for testing/development
|
||||
slugOrder = [], // Array of slugs for consistent icon cycling
|
||||
}) => {
|
||||
// Post-specific background selection - different SVG for each post
|
||||
const getBackgroundImage = (slug, variant, slugOrder) => {
|
||||
const verticalImages = [
|
||||
getAssetPath(ASSETS.VERTICAL_1),
|
||||
getAssetPath(ASSETS.VERTICAL_2),
|
||||
getAssetPath(ASSETS.VERTICAL_3),
|
||||
];
|
||||
// Get article-specific background image from frontmatter
|
||||
const getBackgroundImage = (post, variant) => {
|
||||
// Check if post has thumbnail images defined in frontmatter
|
||||
if (post.frontmatter?.thumbnail) {
|
||||
const imageName =
|
||||
variant === "vertical"
|
||||
? post.frontmatter.thumbnail.vertical
|
||||
: post.frontmatter.thumbnail.horizontal;
|
||||
|
||||
const horizontalImages = [
|
||||
getAssetPath(ASSETS.HORIZONTAL_1),
|
||||
getAssetPath(ASSETS.HORIZONTAL_2),
|
||||
getAssetPath(ASSETS.HORIZONTAL_3),
|
||||
];
|
||||
if (imageName) {
|
||||
// Return path to image in public/content/blog directory
|
||||
return `/content/blog/${imageName}`;
|
||||
}
|
||||
}
|
||||
|
||||
if (!slug)
|
||||
return variant === "vertical" ? verticalImages[0] : horizontalImages[0];
|
||||
// Fallback to default images if no thumbnail specified
|
||||
const fallbackImages = {
|
||||
vertical: getAssetPath(ASSETS.VERTICAL_1),
|
||||
horizontal: getAssetPath(ASSETS.HORIZONTAL_1),
|
||||
};
|
||||
|
||||
// Use the passed slugOrder for consistent cycling through background variants
|
||||
const index = slugOrder.indexOf(slug);
|
||||
const backgroundIndex = index >= 0 ? index % 3 : 0; // Cycle through 3 background variants
|
||||
|
||||
// Return the same background index for both vertical and horizontal variants
|
||||
return variant === "vertical"
|
||||
? verticalImages[backgroundIndex]
|
||||
: horizontalImages[backgroundIndex];
|
||||
return fallbackImages[variant] || fallbackImages.vertical;
|
||||
};
|
||||
|
||||
const backgroundImage = getBackgroundImage(post.slug, variant, slugOrder);
|
||||
const backgroundImage = getBackgroundImage(post, variant);
|
||||
|
||||
if (variant === "vertical") {
|
||||
return (
|
||||
@@ -50,14 +46,14 @@ const ContentThumbnailTemplate = ({
|
||||
href={`/blog/${post.slug}`}
|
||||
className={`block transition-transform duration-200 hover:scale-[1.02] ${className}`}
|
||||
>
|
||||
<div className="relative w-[260px] h-[390px] overflow-hidden pt-[18px] pl-[18px] pr-[42px] pb-[212px]">
|
||||
{/* Background SVG - sized to fit the 260x390 container exactly */}
|
||||
<div className="relative w-full aspect-[2/3] overflow-hidden pt-[18px] pl-[18px] pr-[42px] pb-[212px]">
|
||||
{/* Background SVG - fills container with maintained aspect */}
|
||||
<div className="absolute inset-0 z-0">
|
||||
{/* eslint-disable-next-line @next/next/no-img-element */}
|
||||
<img
|
||||
src={backgroundImage}
|
||||
alt={`Background for ${post.frontmatter.title}`}
|
||||
className="w-[260px] h-[390px] object-cover"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
{/* Gradient overlay for better text readability */}
|
||||
<div className="absolute inset-0 bg-gradient-to-b from-transparent via-transparent to-black/60 z-10" />
|
||||
@@ -76,14 +72,14 @@ const ContentThumbnailTemplate = ({
|
||||
href={`/blog/${post.slug}`}
|
||||
className={`block transition-transform duration-200 hover:scale-[1.02] ${className}`}
|
||||
>
|
||||
<div className="relative w-[320px] h-[225.5px] overflow-hidden pt-[13.75px] pr-[76px] pb-[73.75px] pl-[14px]">
|
||||
<div className="relative min-w-[320px] max-w-[800px] h-[225.5px] overflow-hidden pt-[13.75px] pr-[76px] pb-[73.75px] pl-[14px]">
|
||||
{/* Background SVG - sized to fit the 320x225.5 container exactly */}
|
||||
<div className="absolute inset-0 z-0">
|
||||
{/* eslint-disable-next-line @next/next/no-img-element */}
|
||||
<img
|
||||
src={backgroundImage}
|
||||
alt={`Background for ${post.frontmatter.title}`}
|
||||
className="w-[320px] h-[225.5px] object-cover"
|
||||
className="w-full h-[225.5px] object-cover"
|
||||
/>
|
||||
{/* Gradient overlay */}
|
||||
<div className="absolute inset-0 bg-gradient-to-r from-transparent via-transparent to-black/70 z-10" />
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { usePathname } from "next/navigation";
|
||||
import Logo from "./Logo";
|
||||
import MenuBar from "./MenuBar";
|
||||
import MenuBarItem from "./MenuBarItem";
|
||||
@@ -35,7 +38,9 @@ export const logoConfig = [
|
||||
{ breakpoint: "hidden xl:block", size: "headerXl", showText: true },
|
||||
];
|
||||
|
||||
export default function Header({ onToggle }) {
|
||||
export default function Header() {
|
||||
const pathname = usePathname();
|
||||
|
||||
// Schema markup for site navigation
|
||||
const schemaData = {
|
||||
"@context": "https://schema.org",
|
||||
@@ -55,7 +60,7 @@ export default function Header({ onToggle }) {
|
||||
key={index}
|
||||
href={item.href}
|
||||
size={item.extraPadding && size === "xsmall" ? "xsmallUseCases" : size}
|
||||
onClick={onToggle}
|
||||
isActive={pathname === item.href}
|
||||
ariaLabel={`Navigate to ${item.text} page`}
|
||||
>
|
||||
{item.text}
|
||||
@@ -109,7 +114,7 @@ export default function Header({ onToggle }) {
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }}
|
||||
/>
|
||||
<header
|
||||
className="bg-[var(--color-surface-default-primary)] w-full border-b border-[var(--border-color-default-tertiary)]"
|
||||
className="sticky top-0 z-50 bg-[var(--color-surface-default-primary)] w-full border-b border-[var(--border-color-default-tertiary)]"
|
||||
role="banner"
|
||||
aria-label="Main navigation header"
|
||||
>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { useState } from "react";
|
||||
import { usePathname } from "next/navigation";
|
||||
import Logo from "./Logo";
|
||||
import MenuBar from "./MenuBar";
|
||||
import MenuBarItem from "./MenuBarItem";
|
||||
@@ -8,10 +8,9 @@ import Button from "./Button";
|
||||
import AvatarContainer from "./AvatarContainer";
|
||||
import Avatar from "./Avatar";
|
||||
import HeaderTab from "./HeaderTab";
|
||||
import Header from "./Header";
|
||||
|
||||
export default function HomeHeader() {
|
||||
const [showRegularHeader, setShowRegularHeader] = useState(false);
|
||||
const pathname = usePathname();
|
||||
|
||||
// Schema markup for site navigation (home page specific)
|
||||
const schemaData = {
|
||||
@@ -95,7 +94,7 @@ export default function HomeHeader() {
|
||||
? "home"
|
||||
: "default"
|
||||
}
|
||||
onClick={() => setShowRegularHeader(!showRegularHeader)}
|
||||
isActive={pathname === item.href}
|
||||
ariaLabel={`Navigate to ${item.text} page`}
|
||||
>
|
||||
{item.text}
|
||||
@@ -148,10 +147,6 @@ export default function HomeHeader() {
|
||||
return <Logo size={size} showText={showText} />;
|
||||
};
|
||||
|
||||
if (showRegularHeader) {
|
||||
return <Header onToggle={() => setShowRegularHeader(false)} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<script
|
||||
|
||||
@@ -5,6 +5,7 @@ export default function MenuBarItem({
|
||||
size = "default",
|
||||
className = "",
|
||||
disabled = false,
|
||||
isActive = false,
|
||||
ariaLabel,
|
||||
...props
|
||||
}) {
|
||||
@@ -56,6 +57,27 @@ export default function MenuBarItem({
|
||||
"active:outline-2 active:outline-[var(--color-content-default-primary)] focus:outline-2 focus:outline-[var(--color-content-default-primary)]",
|
||||
};
|
||||
|
||||
const activeStateStyles = {
|
||||
xsmall:
|
||||
"!outline-1 !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-1 focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
xsmallUseCases:
|
||||
"!outline-1 !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-1 focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
default:
|
||||
"!outline-[1.5px] !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-[1.5px] focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
homeMd:
|
||||
"!outline-[1.5px] !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-[1.5px] focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
homeUseCases:
|
||||
"!outline-[1.5px] !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-[1.5px] focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
large:
|
||||
"!outline-[1.75px] !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-[1.75px] focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
largeUseCases:
|
||||
"!outline-[1.75px] !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-[1.75px] focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
homeXlarge:
|
||||
"!outline-[2px] !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-[2px] focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
xlarge:
|
||||
"!outline-2 !outline-[var(--color-content-default-brand-primary)] !text-[var(--color-content-default-brand-primary)] focus:!outline-2 focus:!outline-[var(--color-content-default-brand-primary)]",
|
||||
};
|
||||
|
||||
const sizeStyles = {
|
||||
default:
|
||||
"px-[var(--spacing-measures-spacing-016)] py-[var(--spacing-measures-spacing-016)] gap-[var(--spacing-scale-004)]",
|
||||
@@ -110,7 +132,7 @@ export default function MenuBarItem({
|
||||
finalVariant === "home"
|
||||
? homeOutlineStyles[size]
|
||||
: activeOutlineStyles[size]
|
||||
} ${className}`;
|
||||
} ${isActive ? activeStateStyles[size] : ""} ${className}`;
|
||||
|
||||
const accessibilityProps = {
|
||||
...(ariaLabel && { "aria-label": ariaLabel }),
|
||||
|
||||
@@ -1,116 +1,68 @@
|
||||
import ContentThumbnailTemplate from "../components/ContentThumbnailTemplate";
|
||||
|
||||
// Mock blog post data for testing
|
||||
const mockPost1 = {
|
||||
slug: "resolving-active-conflicts",
|
||||
frontmatter: {
|
||||
title: "Resolving Active Conflicts",
|
||||
description:
|
||||
"Practical steps for resolving conflicts while maintaining trust, cooperation, and shared goals",
|
||||
author: "Author name",
|
||||
date: "2025-04-15",
|
||||
},
|
||||
};
|
||||
|
||||
const mockPost2 = {
|
||||
slug: "operational-security-mutual-aid",
|
||||
frontmatter: {
|
||||
title: "Operational Security for Mutual Aid",
|
||||
description:
|
||||
"Tactics to protect members, secure communication, and prevent Infiltration",
|
||||
author: "Author name",
|
||||
date: "2025-04-10",
|
||||
},
|
||||
};
|
||||
|
||||
const mockPost3 = {
|
||||
slug: "making-decisions-without-hierarchy",
|
||||
frontmatter: {
|
||||
title: "Making decisions without hierarchy",
|
||||
description:
|
||||
"A brief guide to collaborative nonhierarchical decision making",
|
||||
author: "Author name",
|
||||
date: "2025-04-05",
|
||||
},
|
||||
};
|
||||
import ContentLockup from "../components/ContentLockup";
|
||||
import AskOrganizer from "../components/AskOrganizer";
|
||||
import { getAllBlogPosts, getRecentBlogPosts } from "../../lib/content";
|
||||
|
||||
export default function LearnPage() {
|
||||
// Mock slug order for consistent background cycling
|
||||
const mockSlugOrder = [
|
||||
"resolving-active-conflicts",
|
||||
"operational-security-mutual-aid",
|
||||
"making-decisions-without-hierarchy",
|
||||
];
|
||||
// Get real blog posts from the content system
|
||||
const allPosts = getAllBlogPosts();
|
||||
const recentPosts = getRecentBlogPosts(3);
|
||||
|
||||
const contentLockupData = {
|
||||
title: "Organizing is hard",
|
||||
subtitle:
|
||||
"Find answers to your questions and see how other groups have solved similar challenges.",
|
||||
variant: "learn",
|
||||
alignment: "left",
|
||||
};
|
||||
|
||||
const askOrganizerData = {
|
||||
title: "Still have questions?",
|
||||
subtitle: "Get answers from an experienced organizer",
|
||||
description:
|
||||
"Our community of organizers is here to help you navigate the challenges of building and maintaining effective community organizations.",
|
||||
buttonText: "Ask an organizer",
|
||||
buttonHref: "/contact",
|
||||
variant: "centered",
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-[#F4F3F1]">
|
||||
<div className="max-w-6xl mx-auto p-8 pt-24">
|
||||
<h1 className="text-3xl font-bold text-[var(--color-content-default-primary)] mb-8">
|
||||
Learn
|
||||
</h1>
|
||||
<div className="min-h-screen bg-[var(--color-surface-default-primary)]">
|
||||
<ContentLockup {...contentLockupData} />
|
||||
|
||||
<div className="space-y-12">
|
||||
{/* Featured Articles */}
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-[var(--color-content-default-primary)] mb-6">
|
||||
Featured Articles
|
||||
</h2>
|
||||
<div className="flex flex-wrap gap-6">
|
||||
<ContentThumbnailTemplate
|
||||
post={mockPost1}
|
||||
className="mb-4"
|
||||
slugOrder={mockSlugOrder}
|
||||
/>
|
||||
<ContentThumbnailTemplate
|
||||
post={mockPost2}
|
||||
className="mb-4"
|
||||
slugOrder={mockSlugOrder}
|
||||
/>
|
||||
<ContentThumbnailTemplate
|
||||
post={mockPost3}
|
||||
className="mb-4"
|
||||
slugOrder={mockSlugOrder}
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* More Articles */}
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-[var(--color-content-default-primary)] mb-6">
|
||||
More Articles
|
||||
</h2>
|
||||
<div className="space-y-4">
|
||||
<ContentThumbnailTemplate
|
||||
post={mockPost1}
|
||||
variant="horizontal"
|
||||
slugOrder={mockSlugOrder}
|
||||
/>
|
||||
<ContentThumbnailTemplate
|
||||
post={mockPost2}
|
||||
variant="horizontal"
|
||||
slugOrder={mockSlugOrder}
|
||||
/>
|
||||
<ContentThumbnailTemplate
|
||||
post={mockPost3}
|
||||
variant="horizontal"
|
||||
slugOrder={mockSlugOrder}
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Coming Soon */}
|
||||
<section className="bg-white p-6 rounded-lg shadow">
|
||||
<h2 className="text-xl font-semibold text-[var(--color-content-default-primary)] mb-4">
|
||||
More Content Coming Soon
|
||||
</h2>
|
||||
<p className="text-[var(--color-content-default-secondary)]">
|
||||
We're working on adding more educational content to help you
|
||||
build better communities. Check back soon for new articles and
|
||||
resources.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
{/* Horizontal list (below smd) */}
|
||||
<div className="smd:hidden sm:pt-[var(--spacing-scale-024)] sm:pb-[var(--spacing-scale-024)] sm:px-[var(--spacing-scale-020)] space-y-[var(--spacing-scale-002)] sm:space-y-[var(--spacing-scale-008)]">
|
||||
{allPosts.slice(0, 3).map((post, index) => (
|
||||
<ContentThumbnailTemplate
|
||||
key={`${post.slug}-${index}-${
|
||||
post.frontmatter.thumbnail?.horizontal || "default"
|
||||
}`}
|
||||
post={post}
|
||||
variant="horizontal"
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
||||
{/* smd and up: 2x3 grid of vertical thumbnails, repeat posts as needed */}
|
||||
<div className="hidden smd:grid smd:grid-cols-2 xmd:grid-cols-3 lg:grid-cols-3 lg2:grid-cols-4 xl:grid-cols-5 smd:gap-[var(--spacing-scale-008)] md:gap-[var(--spacing-scale-016)] xmd:gap-[var(--spacing-scale-012)] lg:gap-[var(--spacing-scale-016)] lg2:gap-x-[var(--spacing-scale-016)] lg2:gap-y-[var(--spacing-scale-024)] xl:gap-x-[var(--spacing-scale-016)] xl:gap-y-[var(--spacing-scale-016)] smd:pt-[var(--spacing-scale-024)] smd:pb-[var(--spacing-scale-024)] smd:px-[var(--spacing-scale-020)] md:px-[var(--spacing-scale-032)] lg:pt-[var(--spacing-scale-032)] lg:pb-[var(--spacing-scale-064)] lg:px-[var(--spacing-scale-064)]">
|
||||
{Array.from({ length: 16 }).map((_, i) => {
|
||||
const post = allPosts[i % allPosts.length];
|
||||
return (
|
||||
<ContentThumbnailTemplate
|
||||
key={`grid-${post.slug}-${i}-${
|
||||
post.frontmatter.thumbnail?.vertical || "default"
|
||||
}`}
|
||||
post={post}
|
||||
variant="vertical"
|
||||
className={`${i >= 6 ? "hidden lg2:block" : ""} ${
|
||||
i >= 10 ? "xl:hidden" : ""
|
||||
}`}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
|
||||
<AskOrganizer {...askOrganizerData} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,9 +20,11 @@
|
||||
--breakpoint-xsm: 429px;
|
||||
--breakpoint-sm: 430px;
|
||||
--breakpoint-sm2: 440px;
|
||||
--breakpoint-smd: 530px;
|
||||
--breakpoint-md: 640px;
|
||||
--breakpoint-xmd: 768px;
|
||||
--breakpoint-lg: 1024px;
|
||||
--breakpoint-lg2: 1150px;
|
||||
--breakpoint-xl: 1440px;
|
||||
|
||||
/* Reset Tailwind color defaults to avoid collisions */
|
||||
|
||||
@@ -9,6 +9,11 @@ related:
|
||||
"operational-security-mutual-aid",
|
||||
"making-decisions-without-hierarchy",
|
||||
]
|
||||
thumbnail:
|
||||
vertical: "building-community-trust-vertical.svg"
|
||||
horizontal: "building-community-trust-horizontal.svg"
|
||||
background:
|
||||
color: "#EDCC8F"
|
||||
---
|
||||
|
||||
Trust is the foundation of any successful community organization. Without it, even the best structures and processes will struggle to function effectively. Building and maintaining trust requires intentional effort, clear communication, and consistent follow-through on commitments.
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
title: "Sample: Making Decisions Without Hierarchy"
|
||||
description: "A brief guide to collaborative nonhierarchical decision making"
|
||||
author: "Author name"
|
||||
date: "2025-04-05"
|
||||
related: ["resolving-active-conflicts", "operational-security-mutual-aid"]
|
||||
---
|
||||
|
||||
Traditional organizations rely on hierarchical structures where decisions flow from top to bottom. But what if you want to create a more collaborative, egalitarian approach? This guide explores practical methods for making decisions without traditional power structures.
|
||||
|
||||
Before diving into methods, it's worth understanding why groups choose to avoid hierarchy. Benefits include increased participation with more voices in decision-making, better solutions through diverse perspectives leading to creative outcomes, stronger commitment as people support decisions they helped create, skill development as members learn leadership and facilitation skills, and reduced power abuse with less opportunity for exploitation. However, challenges include being time intensive as consensus takes longer than top-down decisions, requiring training as people need to learn new skills, being frustrating as not everyone is comfortable with the process, and the risk of paralysis as groups can get stuck on difficult decisions.
|
||||
|
||||
Effective nonhierarchical decision making is built on several key principles. Equality means all members have equal voice and influence in decisions that affect them. Transparency requires information to be shared openly and decision-making processes to be clear to everyone. Participation means everyone is encouraged and supported to participate in decisions. Accountability means members are responsible for their commitments and actions.
|
||||
|
||||
Consensus is perhaps the most well-known nonhierarchical decision-making method. It works by presenting the proposal clearly, allowing time for questions and clarification, discussing concerns and potential improvements, seeking to address all concerns, testing for consensus with no blocking objections, and implementing the decision. Use consensus for important decisions affecting the whole group, when you need strong commitment to implementation, and for policy decisions or major changes. Tips for success include using a skilled facilitator, allowing plenty of time, focusing on interests rather than positions, and being willing to modify proposals.
|
||||
|
||||
Consent-based decision making focuses on finding decisions that are "good enough" rather than perfect. It works by presenting a proposal, checking for objections rather than preferences, addressing any objections, adopting the proposal if there are no blocking objections, and implementing and reviewing regularly. Use this method for operational decisions, when you need to move quickly, and for decisions that can be easily changed later.
|
||||
|
||||
Sociocracy uses circles or teams to make decisions within their domain. It works by organizing into functional circles, having each circle make decisions in its domain, using consent-based decision making within circles, connecting circles through representatives, and conducting regular review and adaptation. Use sociocracy for larger organizations, when you need clear domains of responsibility, and for ongoing operations.
|
||||
|
||||
Good facilitation is crucial for nonhierarchical decision making. Basic facilitation includes active listening by paying full attention to speakers, reflecting back what you've heard, asking clarifying questions, and avoiding interrupting. Managing discussion involves keeping discussions focused, ensuring everyone has a chance to speak, managing time effectively, and summarizing key points. Handling conflict requires addressing tensions directly, focusing on interests rather than positions, looking for common ground, and knowing when to take breaks.
|
||||
|
||||
Advanced techniques include progressive stack by keeping a list of people who want to speak, prioritizing voices that haven't been heard, balancing different perspectives, and managing dominant speakers. Small group work involves breaking into smaller groups for discussion, using different formats like pairs or triads, reporting back to the larger group, and synthesizing insights. Visual tools include using flip charts or whiteboards, creating visual representations of ideas, tracking decisions and action items, and making processes visible.
|
||||
|
||||
Common challenges include the dominant speaker where one person talks too much, limiting others' participation. Solutions include using progressive stack, setting time limits for individual contributions, directly addressing the behavior, and creating structured discussion formats. Analysis paralysis occurs when groups get stuck in endless discussion without making decisions. Solutions include setting clear time limits, using consent-based methods, focusing on "good enough" solutions, and implementing with regular review. The silent majority problem occurs when many people don't participate in discussions. Solutions include using small group formats, asking direct questions, creating safer spaces for participation, and addressing power dynamics. Veto power abuse happens when people block decisions for personal rather than group reasons. Solutions include clarifying what constitutes a valid objection, distinguishing between preferences and concerns, using consent-based methods, and addressing underlying issues.
|
||||
|
||||
Creating effective nonhierarchical decision making requires cultural change. Training and education should include skills development through regular facilitation training, decision-making method workshops, conflict resolution skills, and communication skills. Process education involves explaining methods clearly, practicing with low-stakes decisions, learning from other groups, and conducting regular process review. Creating safe spaces requires psychological safety by encouraging respectful disagreement, addressing power dynamics, supporting quieter voices, and handling conflict constructively. Inclusive practices include considering different communication styles, providing multiple ways to participate, addressing accessibility needs, and being aware of cultural differences.
|
||||
|
||||
Modern technology can support nonhierarchical decision making. Digital platforms include collaborative tools like shared documents for proposals, online voting platforms, video conferencing for remote participation, and project management tools. Communication tools include discussion forums, chat platforms, email lists, and social media groups. Hybrid approaches combine methods by using online tools for preparation, making final decisions in person, using digital tools for implementation, and conducting regular online check-ins.
|
||||
|
||||
Measuring success involves looking at participation indicators like high attendance at decision-making meetings, diverse voices in discussions, new people taking on leadership roles, and reduced reliance on a few key people. Quality of decisions indicators include decisions being implemented effectively, fewer decisions needing to be revisited, creative solutions emerging, and group satisfaction with outcomes. Group health indicators include low conflict and high trust, strong commitment to decisions, good communication, and sustainable participation levels. Regular review involves process evaluation through monthly process check-ins, annual decision-making reviews, member surveys, and external facilitation. Continuous improvement includes learning from mistakes, adapting methods to your context, sharing learnings with other groups, and staying updated on new approaches.
|
||||
|
||||
Nonhierarchical decision making is not about eliminating leadership—it's about distributing it more broadly and creating more inclusive, effective decision-making processes. While it requires more time and skill than traditional approaches, the benefits in terms of participation, creativity, and commitment can be significant. Remember: there's no one "right" way to make decisions without hierarchy. The key is finding methods that work for your specific group, context, and goals, and being willing to adapt as you learn and grow.
|
||||
@@ -4,6 +4,13 @@ description: "Tactics to protect members, secure communication, and prevent infi
|
||||
author: "Author name"
|
||||
date: "2025-04-10"
|
||||
related: ["resolving-active-conflicts", "making-decisions-without-hierarchy"]
|
||||
thumbnail:
|
||||
vertical: "operational-security-mutual-aid-vertical.svg"
|
||||
horizontal: "operational-security-mutual-aid-horizontal.svg"
|
||||
banner:
|
||||
horizontal: "operational-security-mutual-aid-banner.svg"
|
||||
background:
|
||||
color: "#F4F3F1"
|
||||
---
|
||||
|
||||
Mutual aid organizations face unique security challenges. Unlike traditional nonprofits, they often operate in politically sensitive environments and may be targets of surveillance, infiltration, or repression. This guide provides practical strategies for protecting your organization and its members.
|
||||
|
||||
@@ -5,6 +5,13 @@ author: "Author name"
|
||||
date: "2025-04-15"
|
||||
related:
|
||||
["operational-security-mutual-aid", "making-decisions-without-hierarchy"]
|
||||
thumbnail:
|
||||
vertical: "resolving-active-conflicts-vertical.svg"
|
||||
horizontal: "resolving-active-conflicts-horizontal.svg"
|
||||
banner:
|
||||
horizontal: "resolving-active-conflicts-banner.svg"
|
||||
background:
|
||||
color: "#E2EFFF"
|
||||
---
|
||||
|
||||
Many groups strive to work without bosses, managers, or traditional leadership structures. But when no one's in charge, how do decisions get made? Non-hierarchical groups often rely on collective processes that prioritize trust, transparency, and shared responsibility. These approaches can take more time upfront, but they help build stronger, more equitable communities in the long run.
|
||||
|
||||
@@ -45,6 +45,13 @@ description: "A brief, compelling description of what this article covers"
|
||||
author: "Author Name"
|
||||
date: "2025-01-15"
|
||||
related: ["slug-of-related-article-1", "slug-of-related-article-2"]
|
||||
thumbnail:
|
||||
vertical: "your-article-slug-vertical.svg"
|
||||
horizontal: "your-article-slug-horizontal.svg"
|
||||
banner:
|
||||
horizontal: "your-article-slug-banner.svg" # md+ breakpoint banner image
|
||||
background:
|
||||
color: "#F4F3F1" # Page background color (hex)
|
||||
---
|
||||
```
|
||||
|
||||
@@ -55,6 +62,9 @@ related: ["slug-of-related-article-1", "slug-of-related-article-2"]
|
||||
- **author**: Author name or organization
|
||||
- **date**: Publication date in YYYY-MM-DD format
|
||||
- **related**: Array of article slugs (use filename without .md)
|
||||
- **thumbnail**: Custom images for article thumbnails (optional)
|
||||
- **banner.horizontal**: Banner image for md+ breakpoints (optional)
|
||||
- **background.color**: Page background color as a hex code (e.g., `#F4F3F1`)
|
||||
|
||||
### Related Articles
|
||||
|
||||
@@ -73,6 +83,40 @@ The slug is different from the title - it's lowercase with hyphens instead of sp
|
||||
- Keep paragraphs focused and readable
|
||||
- Write in a conversational, accessible tone
|
||||
|
||||
## Thumbnail Images
|
||||
|
||||
Add custom thumbnail images to make your article stand out:
|
||||
|
||||
1. **Create your images**:
|
||||
- Vertical: 260px × 390px
|
||||
- Horizontal: 320px × 225.5px (minimum width)
|
||||
- Format: SVG preferred, PNG also works
|
||||
|
||||
2. **Save in public/content/blog/**:
|
||||
- `your-article-slug-vertical.svg`
|
||||
- `your-article-slug-horizontal.svg`
|
||||
- `your-article-slug-banner.svg` (optional, for md+ breakpoints)
|
||||
|
||||
3. **Add to frontmatter**:
|
||||
```yaml
|
||||
thumbnail:
|
||||
vertical: "your-article-slug-vertical.svg"
|
||||
horizontal: "your-article-slug-horizontal.svg"
|
||||
banner:
|
||||
horizontal: "your-article-slug-banner.svg"
|
||||
```
|
||||
|
||||
If no thumbnails are provided, default images will be used.
|
||||
|
||||
## Background Color
|
||||
|
||||
Set the content page background using a hex color in frontmatter:
|
||||
|
||||
```yaml
|
||||
background:
|
||||
color: "#F4F3F1" # Use any valid hex code
|
||||
```
|
||||
|
||||
## File Naming
|
||||
|
||||
Use descriptive, URL-friendly filenames:
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
[
|
||||
{
|
||||
"url": "http://127.0.0.1:3010/",
|
||||
"isRepresentativeRun": false,
|
||||
"htmlPath": "/Users/Vinod/Documents/GitHub/community-rule/lhci-results/127_0_0_1--2025_09_30_23_00_46.report.html",
|
||||
"jsonPath": "/Users/Vinod/Documents/GitHub/community-rule/lhci-results/127_0_0_1--2025_09_30_23_00_46.report.json",
|
||||
"summary": {
|
||||
"performance": 0.8,
|
||||
"accessibility": 0.87,
|
||||
"best-practices": 1,
|
||||
"seo": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"url": "http://127.0.0.1:3010/",
|
||||
"isRepresentativeRun": false,
|
||||
"htmlPath": "/Users/Vinod/Documents/GitHub/community-rule/lhci-results/127_0_0_1--2025_09_30_23_01_01.report.html",
|
||||
"jsonPath": "/Users/Vinod/Documents/GitHub/community-rule/lhci-results/127_0_0_1--2025_09_30_23_01_01.report.json",
|
||||
"summary": {
|
||||
"performance": 0.79,
|
||||
"accessibility": 0.87,
|
||||
"best-practices": 1,
|
||||
"seo": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"url": "http://127.0.0.1:3010/",
|
||||
"isRepresentativeRun": true,
|
||||
"htmlPath": "/Users/Vinod/Documents/GitHub/community-rule/lhci-results/127_0_0_1--2025_09_30_23_00_30.report.html",
|
||||
"jsonPath": "/Users/Vinod/Documents/GitHub/community-rule/lhci-results/127_0_0_1--2025_09_30_23_00_30.report.json",
|
||||
"summary": {
|
||||
"performance": 0.74,
|
||||
"accessibility": 0.87,
|
||||
"best-practices": 1,
|
||||
"seo": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -39,6 +39,43 @@ export const BLOG_POST_SCHEMA = {
|
||||
maxLength: 50,
|
||||
},
|
||||
},
|
||||
thumbnail: {
|
||||
type: "object",
|
||||
required: false,
|
||||
default: null,
|
||||
properties: {
|
||||
vertical: {
|
||||
type: "string",
|
||||
required: false,
|
||||
},
|
||||
horizontal: {
|
||||
type: "string",
|
||||
required: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
banner: {
|
||||
type: "object",
|
||||
required: false,
|
||||
default: null,
|
||||
properties: {
|
||||
horizontal: {
|
||||
type: "string",
|
||||
required: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
background: {
|
||||
type: "object",
|
||||
required: false,
|
||||
default: null,
|
||||
properties: {
|
||||
color: {
|
||||
type: "string",
|
||||
required: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -134,7 +171,17 @@ export function sanitizeBlogPost(frontmatter) {
|
||||
|
||||
for (const [field, config] of Object.entries(BLOG_POST_SCHEMA)) {
|
||||
if (frontmatter[field] !== undefined) {
|
||||
sanitized[field] = frontmatter[field];
|
||||
// Special handling for thumbnail and background objects
|
||||
if (
|
||||
(field === "thumbnail" ||
|
||||
field === "background" ||
|
||||
field === "banner") &&
|
||||
typeof frontmatter[field] === "object"
|
||||
) {
|
||||
sanitized[field] = frontmatter[field];
|
||||
} else {
|
||||
sanitized[field] = frontmatter[field];
|
||||
}
|
||||
} else if (config.default !== undefined) {
|
||||
sanitized[field] = config.default;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<svg width="320" height="226" viewBox="0 0 320 226" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_19041_13609)">
|
||||
<rect width="320" height="225.5" fill="#EECB8F"/>
|
||||
<path d="M236.806 172.167C245.394 172.167 253.983 172.167 262.832 172.167C262.905 175.76 262.978 179.353 263.054 183.055C264.607 190.191 266.732 195.544 271.729 200.833C271.882 201 272.034 201.166 272.191 201.337C277.017 206.427 283.757 208.688 290.415 210.166C290.415 204.96 290.415 199.753 290.415 194.389C300.178 194.389 309.941 194.389 320 194.389C320 204.655 320 214.922 320 225.5C292.546 225.5 265.092 225.5 236.806 225.5C236.806 207.9 236.806 190.3 236.806 172.167Z" fill="#52829B"/>
|
||||
<path d="M274.443 112.026H236.821V137.312V137.537V157.856H274.443V112.026Z" fill="#7372A9"/>
|
||||
<path d="M236.806 172.167C245.394 172.167 253.983 172.167 262.832 172.167C262.832 189.766 262.832 207.366 262.832 225.5C254.243 225.5 245.655 225.5 236.806 225.5C236.806 207.9 236.806 190.3 236.806 172.167Z" fill="#5777AA"/>
|
||||
<path d="M262.831 172.167C271.934 172.167 281.036 172.167 290.414 172.167C290.414 184.706 290.414 197.246 290.414 210.166C287.906 209.916 287.906 209.916 287.076 209.686C286.798 209.608 286.798 209.608 286.514 209.53C286.324 209.474 286.134 209.418 285.938 209.361C285.735 209.302 285.532 209.243 285.323 209.182C277.353 206.786 270.577 201.549 266.53 194.251C262.74 187.173 262.831 180.448 262.831 172.167Z" fill="#E17C24"/>
|
||||
<path d="M296.058 112.71V79.6019C284.428 79.5943 285.115 79.4535 273.485 79.6018V112.439C274.96 112.436 276.312 112.436 277.757 112.439L278.283 112.436C278.89 112.436 279.498 112.436 280.106 112.435C280.504 112.433 280.902 112.433 281.3 112.432C281.87 112.432 281.878 112.432 283.059 112.431L283.107 112.431L286.125 112.425C289.391 112.42 292.888 112.714 296.058 112.71Z" fill="#7372A8"/>
|
||||
<path d="M262.831 183.056C262.904 183.056 262.978 183.056 263.053 183.056C263.08 183.192 263.107 183.328 263.134 183.468C264.481 190.235 266.94 195.764 271.729 200.833C271.881 201 272.033 201.166 272.19 201.338C277.017 206.427 283.756 208.689 290.414 210.167C290.414 215.227 290.414 220.287 290.414 225.5C281.312 225.5 272.209 225.5 262.831 225.5C262.831 211.493 262.831 197.487 262.831 183.056Z" fill="#18465E"/>
|
||||
<path d="M236.805 79.5C248.917 79.5 261.029 79.5 273.508 79.5C273.508 90.3533 273.508 101.207 273.508 112.389C261.396 112.389 249.284 112.389 236.805 112.389C236.805 101.536 236.805 90.6822 236.805 79.5Z" fill="#17465E"/>
|
||||
<path d="M295.975 112.389C303.903 112.389 311.831 112.389 319.999 112.389C319.999 127.422 319.999 142.456 319.999 157.945C312.071 157.945 304.143 157.945 295.975 157.945C295.975 142.911 295.975 127.878 295.975 112.389Z" fill="#7C9E75"/>
|
||||
<path d="M273.73 112.389C281.071 112.389 288.412 112.389 295.975 112.389C295.975 127.422 295.975 142.456 295.975 157.945C288.634 157.945 281.294 157.945 273.73 157.945C273.73 142.911 273.73 127.878 273.73 112.389Z" fill="#18465E"/>
|
||||
<path d="M295.975 79.5C303.903 79.5 311.831 79.5 319.999 79.5C319.999 90.3533 319.999 101.207 319.999 112.389C312.071 112.389 304.143 112.389 295.975 112.389C295.975 101.536 295.975 90.6822 295.975 79.5Z" fill="#17465E"/>
|
||||
<path d="M267.058 195.278C267.72 195.906 268.247 196.557 268.768 197.306C269.673 198.566 270.661 199.708 271.729 200.833C271.894 201.008 272.06 201.182 272.23 201.362C273.322 202.482 274.473 203.463 275.733 204.389C274.906 204.389 274.724 204.179 274.092 203.667C273.829 203.454 273.829 203.454 273.56 203.237C273.396 203.104 273.232 202.971 273.064 202.833C272.839 202.664 272.614 202.494 272.382 202.319C272.24 202.196 272.098 202.072 271.951 201.944C271.951 201.798 271.951 201.651 271.951 201.5C271.818 201.441 271.684 201.382 271.547 201.321C271.043 201.046 270.781 200.797 270.419 200.357C270.306 200.219 270.192 200.08 270.074 199.938C269.514 199.232 268.968 198.517 268.434 197.792C268.325 197.647 268.216 197.503 268.104 197.354C268.001 197.213 267.897 197.073 267.79 196.928C267.697 196.803 267.604 196.678 267.509 196.549C267.258 196.13 267.153 195.755 267.058 195.278Z" fill="#144069"/>
|
||||
<path d="M280.628 207.5C281.419 207.635 282.114 207.851 282.852 208.166C282.779 208.386 282.706 208.606 282.63 208.833C282.199 208.75 282.199 208.75 281.74 208.611C281.667 208.464 281.593 208.318 281.518 208.166C281.069 207.915 281.069 207.915 280.628 207.722C280.628 207.649 280.628 207.575 280.628 207.5Z" fill="#114268"/>
|
||||
<rect width="33.8244" height="34.2017" transform="translate(203.028 138.02)" fill="#4F7353"/>
|
||||
<path d="M219.941 140.727C220.801 140.727 221.497 141.423 221.497 142.283V146.103L222.779 142.504C223.067 141.695 223.957 141.272 224.766 141.56C225.576 141.849 225.999 142.739 225.71 143.548L224.367 147.321L226.919 144.235C227.467 143.573 228.448 143.48 229.11 144.027C229.772 144.575 229.865 145.556 229.318 146.218L226.824 149.234L230.191 147.24C230.93 146.802 231.885 147.047 232.322 147.786C232.76 148.526 232.516 149.48 231.776 149.918L228.272 151.993L232.279 151.25C233.124 151.094 233.936 151.652 234.092 152.497C234.249 153.342 233.691 154.154 232.846 154.31L228.752 155.069L232.855 155.781C233.702 155.928 234.269 156.733 234.122 157.58C233.975 158.426 233.17 158.994 232.323 158.847L228.263 158.143L231.828 160.207C232.571 160.638 232.825 161.59 232.394 162.334C231.964 163.077 231.012 163.331 230.268 162.9L226.591 160.771L229.287 164.055C229.832 164.72 229.736 165.7 229.072 166.246C228.408 166.791 227.427 166.694 226.882 166.03L224.387 162.991L225.704 166.696C225.991 167.506 225.568 168.395 224.759 168.683C223.949 168.971 223.059 168.548 222.771 167.738L221.497 164.154V167.958C221.497 168.817 220.801 169.514 219.941 169.514C219.082 169.514 218.385 168.817 218.385 167.958V164.123L217.099 167.736C216.811 168.546 215.921 168.968 215.111 168.68C214.302 168.392 213.879 167.502 214.167 166.692L215.512 162.915L212.957 166.005C212.409 166.668 211.429 166.761 210.766 166.213C210.104 165.665 210.011 164.684 210.558 164.022L213.052 161.006L209.684 163C208.945 163.438 207.99 163.194 207.553 162.454C207.115 161.715 207.359 160.76 208.099 160.323L211.6 158.249L207.601 158.99C206.756 159.147 205.944 158.589 205.788 157.744C205.631 156.899 206.189 156.087 207.034 155.93L211.128 155.171L207.026 154.46C206.179 154.313 205.612 153.508 205.758 152.661C205.905 151.814 206.711 151.247 207.558 151.393L211.612 152.097L208.05 150.034C207.306 149.603 207.052 148.651 207.483 147.907C207.914 147.164 208.866 146.91 209.61 147.341L213.288 149.471L210.591 146.185C210.046 145.521 210.142 144.541 210.806 143.995C211.471 143.45 212.451 143.546 212.996 144.211L215.489 147.247L214.173 143.545C213.886 142.736 214.309 141.846 215.119 141.558C215.928 141.27 216.818 141.693 217.106 142.503L218.385 146.103V142.283C218.385 141.423 219.082 140.727 219.941 140.727Z" fill="#CBA21C"/>
|
||||
<path d="M76 212.841C56.2 212.841 36.4 212.841 16 212.841C16 201.178 16 189.516 16 177.5C35.8 177.5 55.6 177.5 76 177.5C76 189.162 76 200.825 76 212.841Z" fill="#0BA960"/>
|
||||
<path d="M16 212.841L76 212.841L16 177.5L16 212.841Z" fill="#D96043"/>
|
||||
<path d="M130.097 166.532C130.694 166.522 131.29 166.515 131.887 166.51C132.054 166.506 132.222 166.503 132.394 166.5C133.893 166.49 135.075 166.8 136.422 167.468C136.756 167.63 136.756 167.63 137.097 167.796C142.194 170.513 145.138 175.363 146.956 180.685C147.355 182.031 147.642 183.394 147.9 184.774C147.98 184.488 148.06 184.202 148.142 183.907C149.907 177.721 152.2 171.885 157.973 168.403C160.06 167.248 161.857 166.46 164.283 166.503C164.444 166.505 164.604 166.507 164.769 166.51C165.159 166.515 165.548 166.523 165.938 166.532C165.962 169.255 165.973 171.977 165.968 174.699C165.966 175.964 165.968 177.228 165.98 178.492C165.992 179.715 165.992 180.937 165.985 182.159C165.984 182.623 165.987 183.088 165.995 183.552C166.036 186.328 165.879 188.138 163.965 190.238C163.666 190.544 163.666 190.544 163.361 190.855C163.011 191.281 162.664 191.709 162.322 192.141C161.658 192.946 160.985 193.742 160.307 194.534C159.052 196.003 157.853 197.506 156.686 199.046C156.28 199.578 155.87 200.107 155.46 200.635C153.505 203.165 151.645 205.737 149.862 208.39C149.377 209.103 148.874 209.801 148.369 210.5C147.398 210.147 146.962 209.466 146.407 208.644C146.199 208.345 145.991 208.047 145.783 207.749C145.671 207.589 145.56 207.429 145.445 207.264C142.608 203.23 139.573 199.325 136.422 195.532C136.029 195.058 135.637 194.584 135.245 194.11C134.98 193.789 134.714 193.468 134.448 193.147C134.177 192.82 133.91 192.488 133.647 192.154C133.252 191.687 132.859 191.276 132.421 190.853C130.287 188.675 129.982 186.787 130.001 183.794C130.013 183.263 130.026 182.733 130.038 182.202C130.041 181.653 130.043 181.105 130.043 180.557C130.046 179.453 130.057 178.349 130.075 177.245C130.098 175.768 130.1 174.291 130.092 172.813C130.083 170.719 130.085 168.626 130.097 166.532Z" fill="#7C9E75"/>
|
||||
<path d="M294.05 10.3243C295.743 11.6522 296.661 13.483 297.005 15.613C297.364 19.0393 296.236 22.5228 294.988 25.6694C294.708 26.424 294.545 27.1777 294.436 27.975C295.425 27.3699 296.359 26.7438 297.24 25.9836C299.492 24.0774 301.9 22.6703 304.862 22.6428C305.085 22.6399 305.085 22.6399 305.312 22.637C306.386 22.6613 307.195 22.9374 308.138 23.4481C308.283 23.5257 308.428 23.6034 308.577 23.6834C310.321 24.8141 311.427 26.4525 311.906 28.4973C312.152 30.342 311.948 32.0966 310.912 33.6656C309.397 35.6792 307.71 36.8082 305.226 37.203C302.527 37.44 299.837 36.9244 297.176 36.5065C297.579 37.0447 297.95 37.4877 298.499 37.8702C298.678 37.9967 298.678 37.9967 298.861 38.1257C298.987 38.2126 299.113 38.2996 299.242 38.3891C299.505 38.5745 299.767 38.76 300.03 38.9455C300.277 39.1192 300.525 39.2929 300.773 39.4665C303.051 41.0663 304.992 42.8093 305.676 45.6583C305.917 47.9072 305.604 49.708 304.241 51.5564C303.006 53.0054 301.562 53.793 299.684 53.9729C297.627 54.0437 296.05 53.4547 294.436 52.1767C294.281 52.0578 294.281 52.0578 294.122 51.9366C291.964 50.0398 291.323 46.6213 290.818 43.9281C290.75 43.5714 290.682 43.2147 290.613 42.8581C290.552 42.5374 290.491 42.2165 290.431 41.8956C290.334 41.3749 290.334 41.3749 290.154 40.8594C290.115 41.0126 290.115 41.0126 290.076 41.1689C289.764 42.402 289.447 43.6333 289.126 44.864C289.082 45.0339 289.039 45.2038 288.993 45.3788C288.242 48.2663 287.438 51.0701 284.877 52.8514C283.19 53.7997 281.455 54.1833 279.535 53.9178C277.594 53.3143 276.144 51.8895 275.157 50.12C274.332 48.5127 274.318 46.5634 274.825 44.8422C275.747 42.366 277.471 40.6143 279.61 39.1944C281.522 38.0814 281.522 38.0814 282.96 36.5065C282.867 36.5215 282.773 36.5364 282.676 36.5517C278.994 37.1333 278.994 37.1333 277.651 37.203C277.457 37.2162 277.263 37.2295 277.063 37.2431C274.388 37.3477 271.899 36.5014 269.901 34.6566C268.318 32.9695 267.961 31.05 268.003 28.8245C268.088 26.9815 268.916 25.6953 270.156 24.3914C272.109 22.6508 274.205 22.4112 276.695 22.536C279.864 22.8336 282.447 25.3958 284.657 27.4962C285.011 27.8347 285.011 27.8347 285.53 27.975C285.276 26.2231 284.751 24.5885 284.207 22.9108C283.546 20.8177 283.242 18.8212 283.239 16.625C283.235 16.4505 283.23 16.276 283.226 16.0962C283.218 14.04 283.983 12.5354 285.358 11.0691C287.907 8.59362 291.142 8.33191 294.05 10.3243Z" fill="#6E956E"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_19041_13609">
|
||||
<rect width="320" height="225.5" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,34 @@
|
||||
<svg width="260" height="390" viewBox="0 0 260 390" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.99" clip-path="url(#clip0_19192_4888)">
|
||||
<path d="M0 0C85.8 0 171.6 0 260 0C260 128.7 260 257.4 260 390C174.2 390 88.4 390 0 390C0 261.3 0 132.6 0 0Z" fill="#EECB8F"/>
|
||||
<path d="M158.311 290.745C168.808 290.745 179.306 290.745 190.122 290.745C190.212 295.142 190.302 299.538 190.394 304.068C192.292 312.798 194.89 319.348 200.998 325.82C201.184 326.023 201.37 326.227 201.562 326.437C207.462 332.664 215.7 335.431 223.838 337.239C223.838 330.869 223.838 324.498 223.838 317.935C235.771 317.935 247.705 317.935 260 317.935C260 330.496 260 343.058 260 356C226.442 356 192.885 356 158.311 356C158.311 334.466 158.311 312.932 158.311 290.745Z" fill="#52829B"/>
|
||||
<path d="M158.311 273.344C191.868 273.344 225.425 273.344 260 273.344C260 288.059 260 302.774 260 317.935C248.066 317.935 236.133 317.935 223.838 317.935C223.838 324.305 223.838 330.676 223.838 337.239C220.771 336.933 220.771 336.933 219.757 336.651C219.417 336.557 219.417 336.557 219.07 336.46C218.838 336.392 218.605 336.324 218.366 336.254C218.118 336.181 217.87 336.109 217.614 336.035C207.872 333.103 199.59 326.696 194.644 317.766C190.011 309.106 190.122 300.878 190.122 290.745C179.624 290.745 169.127 290.745 158.311 290.745C158.311 285.003 158.311 279.26 158.311 273.344Z" fill="#EECB8F"/>
|
||||
<path d="M222.618 10.9312C225.127 12.8676 226.488 15.5374 226.998 18.6436C227.531 23.6401 225.858 28.7201 224.008 33.3087C223.593 34.4091 223.352 35.5083 223.19 36.671C224.657 35.7886 226.041 34.8755 227.347 33.7669C230.685 30.9872 234.254 28.9353 238.646 28.8951C238.977 28.8909 238.977 28.8909 239.314 28.8867C240.905 28.922 242.104 29.3247 243.502 30.0694C243.717 30.1827 243.932 30.2959 244.154 30.4126C246.738 32.0614 248.379 34.4507 249.088 37.4327C249.453 40.1227 249.151 42.6815 247.615 44.9696C245.368 47.9058 242.867 49.5524 239.186 50.128C235.184 50.4736 231.197 49.7218 227.252 49.1124C227.849 49.8972 228.399 50.5432 229.213 51.101C229.479 51.2854 229.479 51.2854 229.75 51.4736C229.937 51.6004 230.123 51.7271 230.315 51.8577C230.704 52.1281 231.093 52.3985 231.482 52.6691C231.85 52.9225 232.217 53.1757 232.584 53.4288C235.962 55.7618 238.839 58.3036 239.852 62.4583C240.21 65.7379 239.747 68.3639 237.726 71.0594C235.894 73.1724 233.755 74.321 230.97 74.5834C227.92 74.6865 225.582 73.8276 223.19 71.964C222.959 71.7906 222.959 71.7906 222.725 71.6138C219.525 68.8477 218.576 63.8626 217.826 59.9351C217.725 59.4149 217.625 58.8948 217.523 58.3747C217.432 57.907 217.342 57.4391 217.253 56.9712C217.109 56.2118 217.109 56.2118 216.842 55.46C216.785 55.6835 216.785 55.6835 216.726 55.9115C216.265 57.7096 215.794 59.5052 215.319 61.2999C215.254 61.5477 215.189 61.7954 215.122 62.0507C214.008 66.2615 212.816 70.3502 209.019 72.9478C206.518 74.3308 203.946 74.8902 201.1 74.503C198.222 73.6229 196.074 71.5452 194.609 68.9647C193.387 66.6208 193.367 63.7781 194.117 61.2682C195.485 57.6571 198.04 55.1027 201.211 53.0321C204.046 51.409 204.046 51.409 206.178 49.1124C206.039 49.1341 205.9 49.1559 205.756 49.1783C200.298 50.0264 200.298 50.0264 198.307 50.128C198.02 50.1473 197.732 50.1666 197.436 50.1865C193.469 50.3391 189.781 49.1049 186.818 46.4146C184.472 43.9543 183.942 41.1553 184.005 37.9098C184.131 35.2222 185.358 33.3465 187.197 31.4451C190.092 28.9067 193.198 28.5573 196.89 28.7394C201.588 29.1734 205.418 32.9098 208.693 35.9727C209.218 36.4664 209.218 36.4664 209.987 36.671C209.611 34.1162 208.832 31.7324 208.026 29.2859C207.046 26.2337 206.595 23.3221 206.591 20.1195C206.584 19.865 206.578 19.6105 206.572 19.3483C206.56 16.3497 207.694 14.1556 209.733 12.0173C213.511 8.40739 218.307 8.02573 222.618 10.9312Z" fill="#6E956E"/>
|
||||
<path d="M204.316 217.16H158.33V248.098V248.374V273.235H204.316V217.16Z" fill="#7372A9"/>
|
||||
<path d="M158.311 290.745C168.808 290.745 179.306 290.745 190.122 290.745C190.122 312.279 190.122 333.813 190.122 356C179.624 356 169.127 356 158.311 356C158.311 334.466 158.311 312.932 158.311 290.745Z" fill="#5777AA"/>
|
||||
<path d="M13.3623 201.03C13.9092 201.021 14.456 201.014 15.003 201.009C15.1565 201.006 15.31 201.003 15.4682 201C16.842 200.99 17.9256 201.279 19.1601 201.902C19.4665 202.053 19.4665 202.053 19.7791 202.207C24.4516 204.739 27.1499 209.259 28.8164 214.218C29.1822 215.472 29.4452 216.742 29.682 218.028C29.7551 217.762 29.8282 217.495 29.9035 217.22C31.5211 211.456 33.6237 206.018 38.9155 202.774C40.8283 201.697 42.4756 200.963 44.6999 201.003C44.8468 201.005 44.9936 201.007 45.1449 201.009C45.5021 201.014 45.8593 201.022 46.2165 201.03C46.2382 203.567 46.2483 206.103 46.2437 208.64C46.242 209.819 46.2441 210.997 46.2555 212.175C46.2663 213.314 46.2665 214.452 46.2596 215.591C46.2588 216.024 46.2617 216.457 46.2685 216.889C46.3065 219.476 46.1628 221.163 44.4082 223.12C44.1341 223.404 44.1341 223.404 43.8544 223.694C43.5332 224.091 43.215 224.49 42.9015 224.893C42.2933 225.643 41.6767 226.384 41.0551 227.123C39.9046 228.491 38.805 229.892 37.7356 231.327C37.3637 231.822 36.988 232.315 36.6122 232.808C34.82 235.165 33.1143 237.562 31.4801 240.034C31.0354 240.698 30.5743 241.349 30.1115 242C29.2216 241.671 28.8221 241.036 28.3131 240.27C28.1227 239.992 27.932 239.714 27.741 239.437C27.6388 239.288 27.5366 239.138 27.4313 238.984C24.8306 235.226 22.0489 231.587 19.1601 228.053C18.8003 227.611 18.4407 227.169 18.0814 226.727C17.8381 226.428 17.5946 226.129 17.3508 225.831C17.1023 225.525 16.8577 225.216 16.6161 224.905C16.2547 224.47 15.8938 224.087 15.4928 223.692C13.5365 221.663 13.2566 219.903 13.2742 217.115C13.2854 216.62 13.2969 216.126 13.3086 215.631C13.3114 215.12 13.3129 214.609 13.3133 214.098C13.316 213.07 13.3257 212.041 13.3419 211.013C13.363 209.636 13.3648 208.26 13.3581 206.883C13.3494 204.932 13.3512 202.981 13.3623 201.03Z" fill="#7C9E75"/>
|
||||
<path d="M190.123 290.745C201.249 290.745 212.375 290.745 223.838 290.745C223.838 306.088 223.838 321.431 223.838 337.239C220.772 336.933 220.772 336.933 219.758 336.651C219.418 336.557 219.418 336.557 219.071 336.46C218.839 336.392 218.606 336.324 218.366 336.254C218.119 336.181 217.871 336.109 217.615 336.035C207.873 333.103 199.591 326.696 194.644 317.766C190.012 309.106 190.123 300.878 190.123 290.745Z" fill="#E17C24"/>
|
||||
<path d="M230.736 217.998V177.489C216.52 177.48 217.36 177.308 203.145 177.489V217.666C204.947 217.663 206.6 217.663 208.366 217.666L209.008 217.663C209.751 217.663 210.494 217.663 211.237 217.661C211.723 217.66 212.21 217.659 212.697 217.658C213.395 217.658 213.403 217.658 214.857 217.657L214.905 217.657L218.594 217.649C222.586 217.644 226.861 218.003 230.736 217.998Z" fill="#7372A8"/>
|
||||
<path d="M190.123 304.067C190.213 304.067 190.302 304.067 190.395 304.067C190.428 304.234 190.46 304.401 190.494 304.572C192.139 312.851 195.145 319.617 200.999 325.819C201.185 326.023 201.371 326.226 201.563 326.436C207.462 332.663 215.7 335.43 223.838 337.239C223.838 343.43 223.838 349.621 223.838 356C212.712 356 201.586 356 190.123 356C190.123 338.862 190.123 321.724 190.123 304.067Z" fill="#18465E"/>
|
||||
<path d="M158.311 177.364C173.116 177.364 187.921 177.364 203.174 177.364C203.174 190.644 203.174 203.923 203.174 217.605C188.369 217.605 173.564 217.605 158.311 217.605C158.311 204.325 158.311 191.046 158.311 177.364Z" fill="#17465E"/>
|
||||
<path d="M230.635 217.606C240.326 217.606 250.016 217.606 260 217.606C260 236 260 254.394 260 273.345C250.31 273.345 240.619 273.345 230.635 273.345C230.635 254.951 230.635 236.557 230.635 217.606Z" fill="#7C9E75"/>
|
||||
<path d="M203.446 217.606C212.418 217.606 221.391 217.606 230.635 217.606C230.635 236 230.635 254.394 230.635 273.345C221.663 273.345 212.69 273.345 203.446 273.345C203.446 254.951 203.446 236.557 203.446 217.606Z" fill="#18465E"/>
|
||||
<path d="M230.635 177.364C240.326 177.364 250.016 177.364 260 177.364C260 190.644 260 203.923 260 217.605C250.31 217.605 240.619 217.605 230.635 217.605C230.635 204.325 230.635 191.046 230.635 177.364Z" fill="#17465E"/>
|
||||
<path d="M195.289 319.022C196.099 319.791 196.742 320.588 197.379 321.504C198.486 323.045 199.694 324.444 200.999 325.82C201.201 326.033 201.403 326.247 201.612 326.467C202.946 327.838 204.352 329.037 205.893 330.17C204.882 330.17 204.659 329.913 203.888 329.287C203.565 329.026 203.565 329.026 203.237 328.761C203.037 328.598 202.836 328.435 202.63 328.267C202.355 328.059 202.081 327.852 201.798 327.638C201.624 327.487 201.45 327.335 201.271 327.179C201.271 327 201.271 326.82 201.271 326.636C201.108 326.563 200.944 326.491 200.776 326.417C200.161 326.08 199.841 325.775 199.398 325.237C199.259 325.068 199.12 324.898 198.976 324.724C198.292 323.86 197.625 322.986 196.971 322.098C196.838 321.921 196.705 321.745 196.568 321.562C196.442 321.391 196.315 321.219 196.184 321.042C196.071 320.888 195.957 320.735 195.84 320.578C195.534 320.065 195.406 319.606 195.289 319.022Z" fill="#144069"/>
|
||||
<path d="M189.414 22.0898C189.498 22.2574 189.582 22.425 189.668 22.5977C188.991 23.2747 188.314 23.9518 187.637 24.6289C187.385 24.5451 187.134 24.4613 186.875 24.375C187.202 24.041 187.53 23.7079 187.859 23.3752C188.133 23.0969 188.133 23.0969 188.412 22.8129C188.906 22.3437 188.906 22.3437 189.414 22.0898Z" fill="#5F8F69"/>
|
||||
<path d="M211.875 333.977C212.842 334.142 213.692 334.406 214.594 334.792C214.504 335.061 214.415 335.331 214.322 335.608C213.795 335.506 213.795 335.506 213.234 335.336C213.145 335.157 213.055 334.977 212.963 334.792C212.414 334.484 212.414 334.484 211.875 334.248C211.875 334.159 211.875 334.069 211.875 333.977Z" fill="#114268"/>
|
||||
<path d="M147.565 338.992C147.565 339.808 147.565 339.808 146.885 340.539C146.661 340.746 146.436 340.954 146.205 341.167C146.273 340.386 146.273 340.386 146.477 339.536C147.038 339.162 147.038 339.162 147.565 338.992Z" fill="#729A72"/>
|
||||
<rect width="41.3439" height="41.8469" transform="translate(117.027 248.965)" fill="#4F7353"/>
|
||||
<path d="M137.756 253.18C138.754 253.18 139.563 253.989 139.563 254.986V259.421L141.05 255.243C141.385 254.304 142.418 253.813 143.357 254.148C144.297 254.482 144.788 255.515 144.453 256.455L142.894 260.835L145.856 257.252C146.492 256.483 147.631 256.375 148.399 257.011C149.168 257.647 149.276 258.786 148.64 259.554L145.746 263.055L149.654 260.741C150.512 260.232 151.62 260.516 152.128 261.375C152.637 262.233 152.353 263.341 151.495 263.849L147.427 266.258L152.078 265.396C153.059 265.214 154.001 265.862 154.183 266.843C154.365 267.823 153.717 268.766 152.736 268.948L147.984 269.829L152.747 270.655C153.73 270.825 154.388 271.76 154.218 272.743C154.047 273.726 153.112 274.385 152.129 274.214L147.416 273.397L151.554 275.793C152.418 276.293 152.712 277.398 152.212 278.262C151.712 279.125 150.607 279.42 149.744 278.92L145.475 276.448L148.605 280.26C149.238 281.031 149.126 282.17 148.355 282.803C147.584 283.436 146.446 283.324 145.813 282.553L142.917 279.025L144.445 283.326C144.779 284.266 144.288 285.298 143.348 285.632C142.408 285.967 141.375 285.475 141.041 284.535L139.563 280.375V284.79C139.563 285.788 138.754 286.597 137.756 286.597C136.759 286.597 135.95 285.788 135.95 284.79V280.339L134.457 284.533C134.122 285.473 133.089 285.963 132.149 285.629C131.21 285.294 130.719 284.261 131.054 283.321L132.615 278.936L129.649 282.524C129.013 283.293 127.874 283.401 127.106 282.765C126.337 282.129 126.229 280.991 126.864 280.222L129.76 276.72L125.85 279.036C124.991 279.544 123.883 279.26 123.375 278.402C122.867 277.543 123.151 276.435 124.009 275.927L128.074 273.52L123.432 274.381C122.451 274.562 121.508 273.915 121.326 272.934C121.144 271.953 121.792 271.01 122.773 270.828L127.525 269.947L122.764 269.122C121.781 268.951 121.122 268.016 121.292 267.033C121.463 266.05 122.398 265.392 123.381 265.562L128.087 266.378L123.952 263.984C123.089 263.484 122.795 262.379 123.294 261.515C123.794 260.652 124.9 260.357 125.763 260.857L130.033 263.33L126.902 259.516C126.269 258.745 126.381 257.607 127.152 256.974C127.923 256.341 129.061 256.453 129.694 257.224L132.588 260.748L131.061 256.452C130.727 255.512 131.218 254.479 132.158 254.145C133.098 253.811 134.131 254.302 134.465 255.242L135.95 259.421V254.986C135.95 253.989 136.759 253.18 137.756 253.18Z" fill="#CBA21C"/>
|
||||
<path d="M67.4346 259.434H90.869L67.4346 282.869L44.0002 259.434H67.4346Z" fill="#8D5AC4"/>
|
||||
<path d="M67.4346 306.566L44.0002 306.566L67.4346 283.131L90.869 306.566L67.4346 306.566Z" fill="#080033"/>
|
||||
<path d="M62.4624 382.451C47.0029 382.451 31.5435 382.451 15.6156 382.451C15.6156 373.336 15.6156 364.221 15.6156 354.83C31.075 354.83 46.5345 354.83 62.4624 354.83C62.4624 363.945 62.4624 373.06 62.4624 382.451Z" fill="#0BA960"/>
|
||||
<path d="M15.6156 382.451L62.4624 382.451L15.6156 354.83L15.6156 382.451Z" fill="#D96043"/>
|
||||
<path d="M99.4879 365.937C87.3115 360.274 82.0904 345.84 87.8261 333.698C92.5025 323.799 103.018 318.479 113.342 319.921L100.371 347.38L127.922 360.193C120.91 367.913 109.419 370.555 99.4879 365.937Z" fill="#D96043"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_19192_4888">
|
||||
<rect width="260" height="390" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
@@ -0,0 +1,25 @@
|
||||
<svg width="320" height="226" viewBox="0 0 320 226" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_19194_4624)">
|
||||
<path d="M0 0C105.6 0 211.2 0 320 0C320 74.415 320 148.83 320 225.5C214.4 225.5 108.8 225.5 0 225.5C0 151.085 0 76.67 0 0Z" fill="#F4F3F1"/>
|
||||
<path d="M295.435 113.715C296.228 114.359 296.989 115.033 297.744 115.719C297.954 115.907 298.163 116.095 298.379 116.289C302.838 120.499 305.836 125.779 307.893 131.484C308.049 131.918 308.049 131.918 308.209 132.361C311.368 141.863 310.294 152.624 305.913 161.536C305.575 162.138 305.234 162.73 304.861 163.311C304.616 163.895 304.734 164.139 304.923 164.739C305.085 165.1 305.257 165.457 305.436 165.811C310.279 175.532 311.212 185.686 307.817 196.044C305.76 202.007 302.2 207.116 297.744 211.541C297.524 211.764 297.303 211.986 297.076 212.215C289.072 219.876 278.526 222.455 267.762 222.462C267.188 222.464 266.615 222.466 266.041 222.467C264.842 222.47 263.644 222.471 262.446 222.471C260.927 222.471 259.409 222.478 257.891 222.486C256.706 222.492 255.522 222.493 254.337 222.492C253.778 222.493 253.219 222.495 252.66 222.499C240.925 222.573 230.736 218.623 222.349 210.439C221.562 209.646 220.849 208.816 220.159 207.939C220.04 207.793 219.921 207.647 219.797 207.496C219.206 206.754 218.731 206.073 218.385 205.187C217.954 204.175 217.67 203.61 216.802 202.92C215.021 202.565 213.162 202.795 211.363 202.898C206.449 203.042 201.52 200.477 197.99 197.254C193.651 193.045 191.077 187.418 191 181.381C190.993 178.847 191.046 176.537 191.802 174.099C191.892 173.806 191.982 173.514 192.075 173.212C192.684 171.384 193.421 169.769 194.525 168.187C194.703 167.931 194.881 167.675 195.065 167.411C198.337 162.873 202.925 160.345 208.334 159.169C214.189 158.461 219.907 159.511 224.723 163.014C225.592 163.713 226.403 164.452 227.199 165.231C227.39 165.419 227.581 165.606 227.779 165.799C229.897 168.001 231.256 170.502 232.242 173.36C232.301 173.529 232.36 173.698 232.421 173.873C233.31 176.635 233.46 179.522 233.466 182.402C233.469 182.879 233.469 182.879 233.473 183.365C233.48 184.224 233.484 185.082 233.487 185.941C233.491 186.843 233.497 187.745 233.504 188.648C233.515 190.35 233.524 192.053 233.533 193.756C233.542 195.697 233.554 197.638 233.567 199.579C233.592 203.566 233.614 207.554 233.634 211.541C233.684 211.287 233.734 211.033 233.786 210.771C233.852 210.434 233.919 210.098 233.986 209.761C234.018 209.594 234.051 209.427 234.085 209.254C235.022 204.546 237.449 200.142 240.565 196.515C240.674 196.387 240.783 196.259 240.896 196.128C242.443 194.334 244.11 192.768 246.011 191.342C246.143 191.243 246.276 191.143 246.412 191.04C252.274 186.66 258.784 184.099 266.061 183.213C265.922 183.191 265.783 183.169 265.639 183.146C254.965 181.416 245.165 176.951 238.6 168.049C238.171 167.445 237.757 166.834 237.347 166.217C237.249 166.071 237.15 165.926 237.049 165.776C231.522 157.516 229.728 146.066 231.654 136.411C233.083 129.352 236.079 122.783 241.044 117.498C241.504 117.006 241.931 116.5 242.36 115.981C246.07 111.804 251.207 108.997 256.407 107.098C256.803 106.948 256.803 106.948 257.207 106.795C269.745 102.492 285.17 105.61 295.435 113.715Z" fill="#0BA960"/>
|
||||
<path d="M271.759 145.154C280.833 145.154 289.007 147.383 295.971 153.329C296.517 153.807 296.517 153.807 297.242 154.268C297.242 154.43 297.242 154.593 297.242 154.76C297.384 154.82 297.526 154.88 297.673 154.941C299.921 156.196 301.502 159.073 302.932 161.165C303.166 161.504 303.166 161.504 303.404 161.849C309.014 170.291 311.41 180.472 309.612 190.478C307.914 198.68 303.923 205.761 297.984 211.662C297.764 211.884 297.543 212.106 297.316 212.335C290.643 218.725 280.964 222.5 271.759 222.5C271.759 196.976 271.759 171.451 271.759 145.154Z" fill="#05728C"/>
|
||||
<path d="M271.759 59.0078C286.584 59.0078 301.41 59.0078 316.684 59.0078C316.684 74.2918 316.684 89.5757 316.684 105.323C301.859 105.323 287.033 105.323 271.759 105.323C271.759 90.0389 271.759 74.7549 271.759 59.0078Z" fill="#080033"/>
|
||||
<path d="M132.531 163.105C135.969 165.724 138.35 168.992 139.09 173.303C139.214 175.006 139.167 176.716 139.14 178.423C139.136 178.885 139.133 179.347 139.129 179.809C139.121 180.932 139.107 182.054 139.09 183.176C139.253 183.172 139.416 183.168 139.584 183.165C139.799 183.162 140.014 183.159 140.236 183.156C140.448 183.152 140.661 183.149 140.88 183.145C142.554 183.228 143.846 184.169 144.993 185.31C145.842 186.66 146.365 187.984 146.375 189.585C146.378 189.902 146.378 189.902 146.38 190.224C146.381 190.453 146.382 190.682 146.383 190.918C146.384 191.161 146.386 191.405 146.388 191.655C146.393 192.459 146.396 193.264 146.399 194.068C146.4 194.343 146.401 194.619 146.402 194.903C146.408 196.361 146.412 197.819 146.414 199.277C146.417 200.779 146.427 202.281 146.437 203.783C146.444 204.941 146.446 206.099 146.447 207.258C146.449 207.811 146.452 208.364 146.457 208.918C146.463 209.695 146.463 210.472 146.461 211.249C146.466 211.588 146.466 211.588 146.472 211.933C146.456 213.799 146.028 215.606 144.812 217.072C142.509 219.239 139.989 219.625 136.918 219.604C136.406 219.607 136.406 219.607 135.883 219.609C134.954 219.614 134.025 219.612 133.096 219.609C132.119 219.606 131.141 219.609 130.164 219.61C128.524 219.612 126.884 219.61 125.244 219.605C123.353 219.599 121.463 219.601 119.573 219.607C117.943 219.612 116.314 219.612 114.684 219.609C113.714 219.608 112.743 219.608 111.773 219.611C110.69 219.615 109.608 219.61 108.525 219.604C108.208 219.606 107.89 219.608 107.563 219.61C104.967 219.584 102.78 219.029 100.844 217.236C99.6768 215.936 99.0795 214.515 99.0687 212.777C99.0668 212.564 99.0649 212.35 99.0629 212.13C99.0622 211.898 99.0615 211.666 99.0607 211.427C99.0589 211.181 99.0572 210.935 99.0554 210.682C99.0501 209.867 99.0469 209.053 99.0443 208.239C99.0432 207.96 99.0421 207.681 99.041 207.394C99.0354 205.919 99.0315 204.444 99.029 202.969C99.026 201.448 99.0168 199.928 99.0061 198.407C98.9991 197.236 98.9969 196.064 98.9959 194.892C98.9946 194.332 98.9915 193.771 98.9865 193.211C98.98 192.425 98.9802 191.639 98.9821 190.853C98.9787 190.624 98.9752 190.394 98.9717 190.158C98.9884 188.212 99.6203 186.754 100.634 185.11C101.98 183.808 103.202 183.141 105.093 183.139C105.513 183.149 105.933 183.16 106.353 183.176C106.348 182.896 106.342 182.617 106.336 182.329C106.317 181.273 106.304 180.218 106.294 179.163C106.289 178.709 106.282 178.256 106.272 177.803C106.168 172.62 107.229 168.683 110.873 164.781C116.673 159.264 125.96 158.549 132.531 163.105Z" fill="#8D5AC4"/>
|
||||
<path d="M271.76 105.356C271.76 118.337 271.76 131.317 271.76 144.691C258.463 144.691 245.166 144.691 231.466 144.691C231.466 134.625 234.27 125.097 241.338 117.626C241.797 117.138 242.224 116.636 242.652 116.121C246.358 111.978 251.487 109.195 256.681 107.311C256.944 107.211 257.208 107.112 257.479 107.01C259.175 106.432 260.929 106.103 262.691 105.784C262.911 105.741 263.132 105.698 263.36 105.654C266.201 105.176 268.778 105.356 271.76 105.356Z" fill="#D96043"/>
|
||||
<path d="M231.295 144.691C244.591 144.691 257.888 144.691 271.588 144.691C271.588 157.316 271.588 169.942 271.588 182.95C262.236 183.987 252.572 180.515 245.246 174.758C242.258 172.205 239.648 169.438 237.474 166.165C237.376 166.019 237.277 165.873 237.176 165.722C234.06 161.05 232.411 155.65 231.588 150.136C231.557 149.932 231.527 149.728 231.495 149.517C231.273 147.871 231.295 146.389 231.295 144.691Z" fill="#8D5AC4"/>
|
||||
<path d="M224.875 163.119C225.743 163.82 226.553 164.562 227.349 165.345C227.54 165.533 227.732 165.721 227.929 165.915C231.167 169.296 233.32 174.134 233.317 178.85C233.317 179.337 233.317 179.337 233.318 179.834C233.317 180.191 233.316 180.547 233.315 180.904C233.315 181.282 233.315 181.66 233.315 182.038C233.315 183.061 233.314 184.085 233.312 185.108C233.31 186.179 233.31 187.249 233.31 188.32C233.309 190.346 233.307 192.372 233.305 194.398C233.302 196.705 233.3 199.012 233.299 201.319C233.297 206.063 233.292 210.808 233.287 215.553C233.205 215.553 233.123 215.553 233.039 215.553C233.039 204.452 233.039 193.352 233.039 181.916C226.263 181.916 219.486 181.916 212.504 181.916C212.772 188.616 213.259 194.107 215.72 200.218C215.824 200.481 215.928 200.744 216.035 201.015C216.258 201.575 216.482 202.134 216.71 202.691C215.939 203.462 213.764 203.226 212.751 203.248C206.911 203.196 201.677 200.931 197.502 196.863C192.751 191.874 191.102 185.896 191.173 179.188C191.217 177.46 191.457 175.906 191.968 174.249C192.058 173.955 192.148 173.661 192.241 173.358C192.851 171.522 193.586 169.901 194.69 168.313C194.957 167.927 194.957 167.927 195.23 167.533C198.501 162.976 203.087 160.439 208.493 159.258C214.345 158.546 220.06 159.601 224.875 163.119Z" fill="#080033"/>
|
||||
<path d="M271.759 145.154C280.832 145.154 289.005 147.385 295.968 153.336C296.514 153.815 296.514 153.815 297.239 154.276C297.239 154.439 297.239 154.602 297.239 154.769C297.381 154.829 297.523 154.889 297.67 154.951C299.92 156.208 301.494 159.086 302.929 161.18C303.11 161.44 303.292 161.701 303.479 161.969C303.639 162.207 303.799 162.445 303.965 162.69C304.106 162.899 304.247 163.108 304.393 163.324C304.66 163.892 304.66 163.892 304.628 164.381C301.616 171.359 294.539 176.591 287.839 179.672C287.596 179.785 287.353 179.899 287.103 180.015C284.049 181.364 280.773 182.307 277.479 182.846C277.304 182.876 277.128 182.905 276.946 182.936C275.184 183.194 273.591 183.123 271.759 183.123C271.759 170.593 271.759 158.063 271.759 145.154Z" fill="#080033"/>
|
||||
<path d="M212.497 181.743C219.355 181.743 226.213 181.743 233.28 181.743C233.295 184.135 233.31 186.528 233.326 188.993C233.336 190.512 233.346 192.031 233.356 193.549C233.373 195.958 233.389 198.367 233.404 200.776C233.415 202.531 233.427 204.286 233.439 206.04C233.446 206.968 233.452 207.896 233.457 208.825C233.462 209.7 233.468 210.576 233.475 211.452C233.479 211.922 233.481 212.392 233.483 212.862C233.499 214.696 233.598 216.506 233.78 218.332C227.033 216.346 220.957 209.546 217.495 203.796C217.053 203.014 217.053 203.014 216.503 202.509C216.092 201.648 215.757 200.755 215.408 199.867C215.306 199.61 215.205 199.353 215.1 199.088C214.338 197.121 213.713 195.173 213.248 193.115C213.195 192.891 213.142 192.667 213.088 192.436C212.303 188.89 212.497 185.372 212.497 181.743Z" fill="#05728C"/>
|
||||
<path d="M294.454 82.1655C301.79 82.1655 309.127 82.1655 316.685 82.1655C316.685 89.8075 316.685 97.4495 316.685 105.323C309.349 105.323 302.013 105.323 294.454 105.323C294.454 97.6811 294.454 90.0391 294.454 82.1655Z" fill="#8D5AC4"/>
|
||||
<path d="M271.759 59.4712C279.248 59.4712 286.737 59.4712 294.453 59.4712C294.453 66.9603 294.453 74.4495 294.453 82.1655C286.964 82.1655 279.475 82.1655 271.759 82.1655C271.759 74.6764 271.759 67.1873 271.759 59.4712Z" fill="#0BA960"/>
|
||||
<path d="M127.594 167.891C129.835 169.317 131.138 171.172 131.972 173.712C131.972 176.814 131.972 179.916 131.972 183.112C125.867 183.112 119.762 183.112 113.472 183.112C113.472 171.866 113.472 171.866 116.058 169.131C119.262 166.276 123.858 165.828 127.594 167.891Z" fill="#F3F3F1"/>
|
||||
<path d="M125.01 193.484C126.358 194.272 127.38 195.18 127.888 196.664C128.067 198.63 128.062 200.086 126.806 201.674C126.574 201.829 126.342 201.984 126.103 202.144C125.383 202.681 125.383 202.681 125.276 203.527C125.271 203.83 125.267 204.134 125.263 204.447C125.251 204.942 125.251 204.942 125.239 205.446C125.238 205.79 125.236 206.133 125.234 206.487C125.228 206.834 125.221 207.181 125.214 207.539C125.198 208.397 125.19 209.255 125.184 210.112C123.488 210.112 121.793 210.112 120.046 210.112C120.042 209.595 120.039 209.077 120.035 208.544C120.022 207.863 120.009 207.183 119.996 206.503C119.994 206.162 119.992 205.821 119.991 205.469C119.983 205.141 119.975 204.812 119.967 204.473C119.963 204.17 119.959 203.868 119.954 203.556C119.725 202.493 119.251 202.114 118.424 201.411C117.308 199.934 117.38 198.433 117.613 196.664C118.183 195.153 119.139 194.267 120.587 193.5C122.007 193.038 123.602 192.936 125.01 193.484Z" fill="#080033"/>
|
||||
<path d="M132.472 163.112C133.803 163.509 134.563 164.498 135.472 165.567C135.389 165.747 135.307 165.927 135.222 166.112C135.107 165.978 134.992 165.843 134.874 165.704C134.721 165.53 134.567 165.355 134.409 165.175C134.258 165.001 134.108 164.827 133.952 164.647C133.447 164.18 133.119 164.041 132.472 163.93C132.472 163.66 132.472 163.39 132.472 163.112Z" fill="#05728C"/>
|
||||
<path d="M37.0206 179.058C39.7083 180.527 40.9702 182.906 42.0638 185.674C42.1735 185.429 42.2831 185.184 42.3961 184.932C43.8639 181.802 45.368 179.806 48.6079 178.493C50.9936 177.697 53.5229 178.091 55.7752 179.118C58.1382 180.418 59.633 182.293 60.5445 184.818C61.1254 187.114 61.0513 189.402 59.9773 191.531C58.9673 193.06 57.6888 194.373 56.3985 195.666C56.7456 195.511 57.0926 195.356 57.4502 195.197C59.694 194.365 61.911 194.502 64.1367 195.339C66.8345 196.644 68.521 198.596 69.5597 201.388C70.3044 203.992 69.7625 206.399 68.5518 208.779C67.1267 210.843 65.3366 212.346 62.9426 213.15C59.1903 213.625 56.7779 212.919 53.5939 210.965C53.3215 210.802 53.0492 210.639 52.7686 210.472C52.2054 210.127 51.6516 209.768 51.1009 209.403C51.2367 209.529 51.3724 209.654 51.5123 209.783C53.5418 211.724 55.4739 213.875 55.561 216.799C55.5374 218.827 54.9243 220.247 53.4965 221.678C51.5803 222.883 49.9221 223.479 47.673 223.141C45.3143 222.456 44.139 220.821 42.9476 218.77C42.6871 218.146 42.6871 218.146 42.6871 216.897C42.4814 216.897 42.2757 216.897 42.0638 216.897C42.0293 217.125 41.9947 217.354 41.9591 217.59C41.5118 219.467 40.2776 221.075 38.7333 222.205C37.0323 223.234 35.5964 223.344 33.65 223.141C31.7128 222.575 30.3901 221.371 29.2873 219.707C28.4565 217.891 28.4059 216.353 29.0925 214.477C30.0717 212.658 31.6067 211.193 33.0267 209.716C32.7588 209.881 32.4909 210.047 32.2148 210.218C29.1652 212.062 25.794 213.945 22.1199 213.462C19.1792 212.618 16.8449 211.16 15.2667 208.506C14.1028 206.047 13.8374 203.345 14.5801 200.708C15.7174 198.169 17.6961 196.343 20.2112 195.197C22.9274 194.248 25.4268 194.579 28.0408 195.666C27.811 195.495 27.5812 195.324 27.3445 195.148C26.4571 194.395 25.8365 193.644 25.1583 192.699C24.9446 192.406 24.7308 192.113 24.5107 191.812C23.2138 189.747 23.5163 187.095 23.678 184.738C24.2277 182.451 26.1468 180.53 28.1004 179.319C31.0308 177.821 33.9958 177.666 37.0206 179.058Z" fill="#080033"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_19194_4624">
|
||||
<rect width="320" height="225.5" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,35 @@
|
||||
<svg width="260" height="390" viewBox="0 0 260 390" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_19192_4808)">
|
||||
<rect width="260" height="390" fill="#F3F3F1"/>
|
||||
<path d="M101.02 248.901C104.274 251.393 106.527 254.503 107.227 258.605C107.344 260.226 107.299 261.853 107.274 263.477C107.271 263.917 107.267 264.356 107.264 264.796C107.256 265.864 107.243 266.932 107.227 267.999C107.381 267.996 107.535 267.992 107.694 267.989C107.897 267.986 108.101 267.983 108.311 267.981C108.512 267.977 108.713 267.974 108.921 267.97C110.504 268.049 111.727 268.945 112.813 270.031C113.616 271.315 114.11 272.575 114.12 274.098C114.122 274.399 114.122 274.399 114.125 274.706C114.126 274.924 114.127 275.142 114.127 275.367C114.129 275.598 114.131 275.829 114.132 276.068C114.137 276.833 114.14 277.599 114.143 278.364C114.144 278.626 114.145 278.888 114.146 279.158C114.151 280.545 114.155 281.933 114.157 283.32C114.16 284.75 114.169 286.179 114.179 287.608C114.186 288.71 114.188 289.812 114.189 290.914C114.19 291.441 114.193 291.968 114.197 292.494C114.204 293.234 114.203 293.973 114.202 294.712C114.207 295.035 114.207 295.035 114.211 295.363C114.196 297.139 113.792 298.859 112.641 300.254C110.462 302.315 108.077 302.682 105.172 302.662C104.687 302.665 104.687 302.665 104.192 302.668C103.313 302.672 102.434 302.67 101.555 302.667C100.63 302.665 99.7056 302.667 98.781 302.669C97.2289 302.67 95.6769 302.668 94.1249 302.663C92.3361 302.658 90.5475 302.659 88.7587 302.665C87.2169 302.67 85.675 302.67 84.1332 302.668C83.215 302.666 82.2968 302.666 81.3786 302.669C80.3541 302.673 79.3298 302.668 78.3053 302.662C78.0051 302.664 77.7048 302.666 77.3954 302.668C74.9389 302.643 72.8689 302.116 71.0373 300.409C69.9328 299.173 69.3676 297.82 69.3574 296.167C69.3556 295.963 69.3538 295.76 69.3519 295.551C69.3513 295.33 69.3506 295.109 69.3499 294.882C69.3482 294.648 69.3465 294.414 69.3448 294.172C69.3398 293.397 69.3368 292.623 69.3343 291.848C69.3333 291.583 69.3322 291.318 69.3312 291.044C69.3259 289.641 69.3222 288.237 69.3199 286.833C69.3171 285.387 69.3083 283.94 69.2982 282.493C69.2916 281.378 69.2895 280.263 69.2886 279.148C69.2873 278.615 69.2844 278.082 69.2797 277.548C69.2735 276.8 69.2737 276.053 69.2755 275.305C69.2722 275.086 69.269 274.868 69.2656 274.644C69.2814 272.792 69.8794 271.404 70.8389 269.84C72.1123 268.601 73.2687 267.966 75.0581 267.965C75.4556 267.974 75.853 267.984 76.2503 267.999C76.245 267.733 76.2396 267.467 76.2342 267.193C76.2155 266.189 76.204 265.185 76.1945 264.181C76.1894 263.75 76.1826 263.318 76.1737 262.887C76.0747 257.955 77.0786 254.21 80.527 250.496C86.0148 245.247 94.8026 244.566 101.02 248.901Z" fill="#8D5AC4"/>
|
||||
<path d="M43.9253 204.902C45.483 205.884 46.4492 207.198 46.9722 208.965C47.4935 212.575 46.3546 215.946 44.6871 219.121C44.8965 218.88 45.106 218.639 45.3218 218.391C47.5803 216.133 50.8323 214.107 54.0657 213.932C56.126 214.002 57.9907 214.841 59.4136 216.328C60.8516 218.361 61.7654 220.406 61.4449 222.93C60.935 224.987 60.1341 226.645 58.3712 227.872C56.3685 229.061 54.4675 229.36 52.1773 229.325C51.9734 229.325 51.7695 229.325 51.5594 229.324C50.2644 229.315 49.0157 229.207 47.7339 229.023C47.9427 229.128 48.1516 229.233 48.3667 229.341C51.4607 230.941 54.5731 232.893 55.9363 236.255C56.4498 238.115 56.3194 239.979 55.4334 241.695C54.1733 243.687 52.6348 244.994 50.4476 245.861C48.213 246.277 46.1526 246.246 44.2209 244.964C41.1381 242.541 40.1631 238.662 39.6754 234.944C39.6535 234.75 39.6315 234.555 39.6089 234.355C39.5835 234.496 39.558 234.637 39.5318 234.781C38.0699 242.746 38.0699 242.746 34.5308 245.273C32.8115 246.271 30.9383 246.349 29.0173 245.86C26.4191 244.903 24.5037 243.247 23.2637 240.767C22.7485 238.087 23.1339 236.141 24.6285 233.848C26.233 231.666 29.095 230.172 31.4839 229.023C31.2522 229.051 31.2522 229.051 31.0158 229.079C27.3735 229.465 24.284 229.601 20.9944 227.802C19.1395 226.292 18.2316 224.794 17.9287 222.411C17.7985 219.989 18.5115 218.206 19.9669 216.286C21.1715 214.964 22.5592 214.183 24.3379 213.947C28.4375 213.782 31.2519 216.166 34.2769 218.613C34.1545 218.347 34.0321 218.08 33.906 217.805C32.5361 214.781 31.1765 211.614 32.2139 208.243C32.875 206.799 33.7093 205.769 35.0386 204.902C35.1967 204.798 35.3548 204.693 35.5177 204.585C37.9976 203.225 41.5354 203.486 43.9253 204.902Z" fill="#D96043"/>
|
||||
<path d="M160.173 322.007C163.002 324.026 164.314 326.726 164.968 330.058C165.05 330.604 165.13 331.15 165.204 331.697C165.247 331.357 165.247 331.357 165.292 331.009C165.739 327.97 166.768 324.818 169.139 322.707C171.505 321.042 173.638 320.468 176.501 320.69C179.26 321.252 181.461 322.701 183.147 324.936C184.515 327.155 185.128 329.44 184.573 331.983C184.124 333.625 183.565 334.911 182.384 336.147C182.232 336.308 182.079 336.469 181.922 336.635C180.591 337.924 179.189 338.601 177.442 339.191C177.275 339.249 177.107 339.307 176.935 339.366C175.629 339.752 174.317 339.704 172.97 339.66C172.97 339.814 172.97 339.969 172.97 340.128C173.176 340.116 173.176 340.116 173.386 340.104C176.502 340.001 179.175 341.055 181.752 342.748C183.609 344.682 184.732 346.931 184.826 349.613C184.723 352.642 183.281 355.148 181.106 357.214C178.87 358.988 176.482 359.538 173.676 359.332C171.095 358.88 169.071 357.454 167.557 355.351C166.085 353.046 165.501 350.306 165.204 347.623C165.148 348.005 165.148 348.005 165.091 348.395C164.564 351.781 163.666 355.15 160.894 357.415C158.63 359.055 156.447 359.555 153.672 359.332C151.239 358.777 148.948 357.442 147.552 355.351C146.004 352.599 145.344 349.938 146.102 346.81C147.092 344.244 148.832 342.465 151.318 341.299C153.076 340.61 154.798 340.085 156.702 340.114C156.977 340.117 156.977 340.117 157.259 340.12C157.395 340.123 157.532 340.125 157.673 340.128C157.673 339.974 157.673 339.819 157.673 339.66C157.518 339.668 157.364 339.676 157.205 339.685C153.923 339.781 150.751 338.793 148.273 336.571C146.19 334.302 145.736 331.617 145.864 328.676C146.066 326.254 147.535 324.356 149.259 322.739C152.386 320.206 156.754 319.917 160.173 322.007Z" fill="#D96043"/>
|
||||
<path d="M96.4177 253.61C98.57 254.958 99.8225 256.712 100.623 259.113C100.623 262.046 100.623 264.979 100.623 268C94.7578 268 88.8926 268 82.8496 268C82.8496 257.368 82.8496 257.368 85.3341 254.782C88.413 252.083 92.8284 251.66 96.4177 253.61Z" fill="#F3F3F1"/>
|
||||
<path d="M93.8604 277.634C95.1258 278.392 96.0859 279.267 96.5621 280.695C96.7309 282.588 96.7257 283.99 95.5465 285.52C95.3286 285.669 95.1107 285.818 94.8863 285.972C94.2103 286.489 94.2103 286.489 94.1095 287.303C94.1056 287.596 94.1016 287.888 94.0975 288.19C94.0864 288.666 94.0864 288.666 94.0751 289.152C94.0737 289.482 94.0722 289.813 94.0707 290.153C94.0643 290.488 94.0579 290.822 94.0513 291.167C94.0364 291.993 94.029 292.819 94.0231 293.645C92.4311 293.645 90.8391 293.645 89.1988 293.645C89.1952 293.146 89.1916 292.648 89.1879 292.134C89.176 291.479 89.1638 290.824 89.1512 290.169C89.1498 289.841 89.1483 289.512 89.1468 289.174C89.1394 288.857 89.132 288.541 89.1245 288.214C89.1205 287.923 89.1165 287.632 89.1124 287.332C88.8972 286.308 88.4523 285.943 87.6754 285.266C86.6278 283.844 86.6956 282.399 86.9137 280.695C87.4489 279.241 88.347 278.388 89.7067 277.649C91.0397 277.204 92.5377 277.106 93.8604 277.634Z" fill="#080033"/>
|
||||
<path d="M11.7119 350.922C20.7299 350.922 29.748 350.922 39.0392 350.922C39.0392 360.037 39.0392 369.152 39.0392 378.543C30.0212 378.543 21.0032 378.543 11.7119 378.543C11.7119 369.428 11.7119 360.313 11.7119 350.922Z" fill="#0BA960"/>
|
||||
<path d="M39.0392 350.922H11.7119L39.0392 378.543V350.922Z" fill="#D96043"/>
|
||||
<path d="M220.643 343.128C222.827 344.323 223.852 346.258 224.741 348.509C224.83 348.31 224.919 348.11 225.011 347.905C226.203 345.36 227.425 343.736 230.058 342.669C231.996 342.021 234.051 342.342 235.881 343.177C237.801 344.234 239.016 345.759 239.756 347.813C240.228 349.68 240.168 351.541 239.296 353.272C238.475 354.516 237.436 355.584 236.388 356.635C236.67 356.509 236.952 356.384 237.242 356.254C239.065 355.577 240.867 355.689 242.675 356.369C244.867 357.431 246.237 359.019 247.081 361.289C247.686 363.407 247.246 365.365 246.262 367.3C245.104 368.979 243.65 370.202 241.705 370.855C238.656 371.242 236.696 370.668 234.109 369.078C233.888 368.946 233.666 368.813 233.438 368.677C232.981 368.397 232.531 368.104 232.083 367.808C232.194 367.91 232.304 368.012 232.418 368.117C234.067 369.695 235.637 371.445 235.707 373.823C235.688 375.473 235.19 376.628 234.03 377.791C232.473 378.772 231.126 379.256 229.298 378.981C227.382 378.424 226.427 377.094 225.459 375.426C225.247 374.918 225.247 374.918 225.247 373.903C225.08 373.903 224.913 373.903 224.741 373.903C224.713 374.089 224.685 374.275 224.656 374.466C224.292 375.993 223.289 377.301 222.035 378.22C220.653 379.057 219.486 379.146 217.905 378.981C216.331 378.521 215.256 377.542 214.36 376.188C213.685 374.711 213.644 373.461 214.202 371.935C214.997 370.455 216.244 369.264 217.398 368.062C217.18 368.197 216.963 368.332 216.739 368.471C214.261 369.97 211.522 371.502 208.536 371.109C206.147 370.423 204.25 369.237 202.968 367.078C202.022 365.078 201.807 362.88 202.41 360.736C203.334 358.671 204.942 357.186 206.986 356.254C209.193 355.482 211.223 355.752 213.347 356.635C213.16 356.496 212.974 356.358 212.781 356.215C212.06 355.602 211.556 354.991 211.005 354.223C210.831 353.984 210.658 353.746 210.479 353.501C209.425 351.822 209.671 349.665 209.802 347.747C210.249 345.887 211.808 344.325 213.396 343.34C215.777 342.122 218.186 341.996 220.643 343.128Z" fill="#080033"/>
|
||||
<path d="M104.495 358.7C105.822 358.676 107.15 358.659 108.478 358.648C108.929 358.643 109.379 358.637 109.83 358.629C110.481 358.617 111.132 358.612 111.784 358.608C111.983 358.603 112.182 358.598 112.387 358.594C114.498 358.593 116.126 359.399 117.661 360.821C119.185 362.527 119.345 364.491 119.298 366.695C119.159 368.677 118.356 370.136 116.983 371.556C115.095 373.187 113.194 373.693 110.759 373.545C108.648 373.294 107.093 372.44 105.665 370.866C104.504 369.288 104.461 367.778 104.472 365.897C104.472 365.691 104.473 365.485 104.473 365.272C104.474 364.617 104.477 363.961 104.48 363.306C104.481 362.86 104.482 362.415 104.483 361.969C104.486 360.879 104.49 359.789 104.495 358.7Z" fill="#080033"/>
|
||||
<path d="M100.475 343.881C101.876 344.739 103.204 345.814 103.69 347.439C103.799 347.963 103.821 348.432 103.82 348.967C103.82 349.169 103.82 349.37 103.82 349.577C103.818 349.793 103.817 350.008 103.816 350.23C103.816 350.452 103.815 350.674 103.815 350.902C103.814 351.61 103.811 352.318 103.808 353.026C103.807 353.507 103.806 353.987 103.805 354.468C103.802 355.645 103.798 356.821 103.793 357.998C102.574 358.022 101.355 358.039 100.136 358.05C99.7223 358.054 99.3086 358.061 98.895 358.069C95.6898 358.131 93.0972 358.03 90.6624 355.695C89.0864 353.887 88.9009 351.896 89.0529 349.575C89.3719 347.559 90.3345 345.989 91.9182 344.703C94.3847 342.985 97.7016 342.563 100.475 343.881Z" fill="#080033"/>
|
||||
<path d="M95.1594 358.674C95.3514 358.674 95.5434 358.674 95.7412 358.674C96.0505 358.676 96.0505 358.676 96.3661 358.678C96.684 358.678 96.684 358.678 97.0083 358.679C97.6853 358.68 98.3623 358.683 99.0394 358.686C99.4983 358.687 99.9573 358.688 100.416 358.689C101.541 358.692 102.667 358.696 103.792 358.701C103.815 360.057 103.832 361.414 103.843 362.771C103.848 363.231 103.854 363.692 103.863 364.153C103.874 364.818 103.879 365.484 103.883 366.149C103.888 366.352 103.893 366.555 103.898 366.764C103.899 368.446 103.543 370.05 102.438 371.364C100.828 372.952 98.885 373.485 96.6704 373.587C94.4952 373.523 92.7791 372.732 91.1721 371.277C89.5863 369.532 88.9679 367.494 89.0023 365.178C89.1494 363.307 89.7988 361.655 91.1574 360.338C92.398 359.451 93.6002 358.669 95.1594 358.674Z" fill="#080033"/>
|
||||
<path d="M115.139 343.829C116.987 344.901 118.377 346.402 119.087 348.437C119.572 350.662 119.481 352.974 118.297 354.957C117.727 355.63 117.727 355.63 117.127 356.127C116.881 356.366 116.881 356.366 116.63 356.609C114.18 358.26 111.608 358.113 108.778 358.057C108.361 358.052 107.944 358.048 107.528 358.044C106.516 358.034 105.504 358.018 104.493 357.999C104.475 356.742 104.463 355.485 104.454 354.229C104.451 353.802 104.446 353.375 104.44 352.949C104.359 347.16 104.359 347.16 106.34 345.073C108.748 343.063 112.279 342.506 115.139 343.829Z" fill="#080033"/>
|
||||
<path d="M38.2 295.534L32.3003 295.58V312.947H32.4857H50.4746L50.5325 307.266C50.5445 306.43 50.5575 305.593 50.5623 304.757L50.5651 304.07L50.5795 303.343C50.5805 301.14 50.0198 299.392 48.4643 297.79C46.5241 296.032 44.4896 295.464 41.8953 295.502L41.5185 295.508C41.0293 295.509 40.54 295.511 40.0507 295.513L38.2 295.534Z" fill="#080033"/>
|
||||
<path d="M26.3786 330.414L32.2783 330.367L32.2783 313L32.0929 313L14.1041 313L14.0461 318.681C14.0341 319.518 14.0211 320.354 14.0163 321.191L14.0135 321.877L13.9991 322.604C13.9981 324.808 14.5589 326.555 16.1143 328.157C18.0545 329.915 20.089 330.484 22.6833 330.445L23.0601 330.44C23.5493 330.438 24.0386 330.436 24.5279 330.434L26.3786 330.414Z" fill="#0BA960"/>
|
||||
<path d="M239.449 13.8408C240.467 14.5844 241.137 15.4348 241.526 16.6471C241.841 19.6947 240.844 22.3883 239.686 25.1331C239.825 25.0005 239.963 24.8679 240.106 24.7313C244.298 20.7866 244.298 20.7866 247.16 20.6831C248.806 20.7452 249.763 21.1857 250.89 22.3907C251.949 23.7193 252.281 24.9439 252.225 26.649C252.053 28.0075 251.391 28.9914 250.337 29.8289C248.127 31.2239 245.489 31.411 242.957 31.3424C242.687 31.3424 242.417 31.3424 242.139 31.3424C242.322 31.4552 242.505 31.5681 242.693 31.6844C247.36 34.61 247.36 34.61 248.067 37.1377C248.239 38.4562 248.32 39.8257 247.534 40.9555C246.392 42.245 245.254 43.2187 243.522 43.4262C242.08 43.4983 241.019 43.4213 239.868 42.4956C237.903 40.5099 237.146 37.7521 236.62 35.068C236.545 35.3905 236.545 35.3905 236.47 35.7196C235.776 38.6753 235.067 41.184 232.493 43.0624C231.372 43.6104 230.052 43.5219 228.852 43.347C227.128 42.7199 226.093 41.7914 225.211 40.1906C224.762 38.7555 224.777 37.6117 225.428 36.2451C226.134 34.9115 226.989 34.0413 228.201 33.1922C228.321 33.1051 228.442 33.018 228.567 32.9283C230.793 31.3424 230.793 31.3424 231.714 31.3424C231.646 31.2741 231.579 31.2058 231.509 31.1354C231.399 31.1642 231.289 31.193 231.176 31.2227C228.616 31.8558 225.426 31.2403 223.154 29.9882C222.225 29.3434 221.505 28.4703 221.084 27.4098C220.857 25.6179 221.056 24.129 222.106 22.6494C223.034 21.5968 224.125 20.8846 225.532 20.7211C228.314 20.6095 230.094 21.9373 232.123 23.6843C232.472 24.022 232.809 24.3676 233.145 24.7192C233.061 24.5017 232.977 24.2843 232.891 24.0602C230.863 18.7405 230.863 18.7405 231.829 15.9486C232.4 14.6808 233.244 14.062 234.397 13.3614C236.075 12.7274 237.921 12.9526 239.449 13.8408Z" fill="#080033"/>
|
||||
<path d="M209.012 136C223.883 136 238.755 136 254.077 136C254.077 151.331 254.077 166.663 254.077 182.459C239.205 182.459 224.334 182.459 209.012 182.459C209.012 167.127 209.012 151.796 209.012 136Z" fill="#080033"/>
|
||||
<path d="M209.012 136.465C216.524 136.465 224.037 136.465 231.777 136.465C231.777 143.977 231.777 151.49 231.777 159.23C224.264 159.23 216.752 159.23 209.012 159.23C209.012 151.717 209.012 144.205 209.012 136.465Z" fill="#0BA960"/>
|
||||
<path d="M231.775 159.229C239.134 159.229 246.494 159.229 254.076 159.229C254.076 166.895 254.076 174.561 254.076 182.459C246.717 182.459 239.357 182.459 231.775 182.459C231.775 174.793 231.775 167.128 231.775 159.229Z" fill="#8D5AC4"/>
|
||||
<path d="M232.761 190.877C233.556 191.523 234.319 192.198 235.077 192.887C235.287 193.076 235.497 193.264 235.713 193.459C240.186 197.682 243.193 202.978 245.257 208.701C245.414 209.137 245.414 209.137 245.574 209.581C248.743 219.113 247.666 229.907 243.271 238.847C242.932 239.45 242.59 240.045 242.216 240.627C241.97 241.213 242.088 241.458 242.278 242.059C242.44 242.422 242.613 242.78 242.793 243.134C247.651 252.886 248.587 263.071 245.181 273.461C243.118 279.443 239.547 284.568 235.077 289.007C234.856 289.23 234.635 289.453 234.407 289.683C226.377 297.367 215.799 299.955 205.002 299.962C204.426 299.964 203.85 299.965 203.275 299.967C202.073 299.97 200.871 299.971 199.669 299.971C198.146 299.971 196.623 299.977 195.1 299.986C193.911 299.992 192.723 299.992 191.535 299.992C190.974 299.993 190.414 299.995 189.853 299.999C178.081 300.073 167.86 296.111 159.447 287.901C158.658 287.106 157.942 286.273 157.251 285.393C157.131 285.247 157.011 285.1 156.888 284.95C156.294 284.205 155.818 283.522 155.471 282.633C155.038 281.618 154.754 281.051 153.883 280.359C152.097 280.003 150.232 280.233 148.427 280.337C143.498 280.482 138.554 277.909 135.013 274.676C130.66 270.453 128.078 264.808 128.001 258.753C127.994 256.212 128.047 253.894 128.805 251.449C128.896 251.155 128.986 250.861 129.079 250.559C129.691 248.725 130.429 247.105 131.537 245.518C131.716 245.261 131.894 245.004 132.079 244.739C135.361 240.187 139.963 237.652 145.389 236.472C151.262 235.761 156.997 236.815 161.829 240.329C162.7 241.03 163.514 241.772 164.312 242.553C164.504 242.741 164.696 242.929 164.894 243.123C167.019 245.332 168.382 247.84 169.371 250.707C169.43 250.877 169.49 251.047 169.551 251.221C170.443 253.992 170.593 256.889 170.599 259.777C170.602 260.255 170.602 260.255 170.606 260.743C170.613 261.604 170.617 262.466 170.62 263.328C170.624 264.232 170.631 265.137 170.637 266.042C170.648 267.75 170.658 269.458 170.666 271.167C170.675 273.113 170.688 275.06 170.7 277.007C170.726 281.007 170.748 285.007 170.768 289.007C170.818 288.752 170.868 288.497 170.919 288.234C170.986 287.897 171.053 287.559 171.12 287.221C171.153 287.054 171.186 286.886 171.22 286.713C172.159 281.99 174.594 277.572 177.72 273.934C177.83 273.806 177.939 273.678 178.052 273.545C179.604 271.746 181.276 270.176 183.183 268.745C183.315 268.645 183.448 268.545 183.585 268.442C189.465 264.049 195.996 261.479 203.295 260.591C203.155 260.569 203.016 260.547 202.872 260.524C192.164 258.788 182.334 254.309 175.749 245.379C175.319 244.774 174.903 244.16 174.492 243.542C174.393 243.396 174.295 243.25 174.193 243.099C168.649 234.814 166.849 223.328 168.781 213.643C170.214 206.563 173.22 199.973 178.2 194.672C178.661 194.178 179.09 193.67 179.52 193.15C183.242 188.96 188.395 186.144 193.611 184.239C194.008 184.088 194.008 184.088 194.413 183.935C206.991 179.619 222.464 182.747 232.761 190.877Z" fill="#0BA960"/>
|
||||
<path d="M209.011 182.492C209.011 195.513 209.011 208.534 209.011 221.949C195.673 221.949 182.334 221.949 168.592 221.949C168.592 211.852 171.405 202.295 178.494 194.8C178.955 194.311 179.383 193.807 179.812 193.291C183.53 189.135 188.676 186.343 193.885 184.453C194.149 184.353 194.414 184.254 194.686 184.151C196.387 183.571 198.147 183.242 199.914 182.921C200.135 182.878 200.356 182.835 200.585 182.791C203.435 182.312 206.02 182.492 209.011 182.492Z" fill="#D96043"/>
|
||||
<path d="M168.42 221.949C181.759 221.949 195.097 221.949 208.839 221.949C208.839 234.614 208.839 247.279 208.839 260.327C199.458 261.368 189.764 257.885 182.415 252.11C179.418 249.549 176.8 246.773 174.62 243.49C174.521 243.344 174.422 243.197 174.32 243.046C171.195 238.36 169.541 232.943 168.715 227.412C168.684 227.207 168.653 227.002 168.622 226.791C168.399 225.14 168.42 223.653 168.42 221.949Z" fill="#8D5AC4"/>
|
||||
<path d="M209.012 222.414C218.114 222.414 226.313 224.65 233.299 230.614C233.847 231.094 233.847 231.094 234.574 231.556C234.574 231.719 234.574 231.883 234.574 232.051C234.717 232.11 234.859 232.17 235.006 232.232C237.261 233.49 238.847 236.377 240.282 238.475C240.516 238.815 240.516 238.815 240.755 239.161C246.383 247.629 248.786 257.842 246.983 267.879C245.28 276.106 241.276 283.21 235.319 289.129C235.097 289.351 234.876 289.574 234.649 289.804C227.954 296.214 218.245 300 209.012 300C209.012 274.397 209.012 248.793 209.012 222.414Z" fill="#05728C"/>
|
||||
<path d="M209.012 222.414C218.113 222.414 226.311 224.652 233.296 230.622C233.844 231.102 233.844 231.102 234.571 231.565C234.571 231.728 234.571 231.891 234.571 232.06C234.714 232.12 234.856 232.179 235.003 232.241C237.261 233.502 238.839 236.39 240.279 238.49C240.461 238.751 240.643 239.012 240.83 239.281C240.991 239.52 241.152 239.759 241.318 240.005C241.459 240.215 241.601 240.424 241.747 240.641C242.016 241.211 242.016 241.211 241.983 241.701C238.961 248.7 231.863 253.949 225.141 257.039C224.898 257.153 224.655 257.267 224.404 257.384C221.34 258.737 218.054 259.683 214.75 260.223C214.574 260.253 214.397 260.283 214.216 260.313C212.448 260.572 210.85 260.502 209.012 260.502C209.012 247.933 209.012 235.364 209.012 222.414Z" fill="#080033"/>
|
||||
<path d="M161.982 240.434C162.853 241.137 163.666 241.882 164.464 242.666C164.656 242.855 164.848 243.044 165.046 243.238C168.295 246.63 170.454 251.483 170.45 256.214C170.451 256.703 170.451 256.703 170.451 257.201C170.451 257.559 170.45 257.916 170.449 258.274C170.449 258.653 170.449 259.032 170.449 259.412C170.449 260.438 170.447 261.465 170.446 262.491C170.444 263.565 170.444 264.639 170.444 265.713C170.443 267.745 170.441 269.777 170.438 271.81C170.436 274.124 170.434 276.438 170.433 278.752C170.43 283.512 170.426 288.271 170.421 293.03C170.339 293.03 170.257 293.03 170.172 293.03C170.172 281.896 170.172 270.761 170.172 259.289C163.375 259.289 156.577 259.289 149.573 259.289C149.842 266.01 150.331 271.518 152.8 277.648C152.904 277.912 153.008 278.176 153.116 278.448C153.338 279.01 153.564 279.57 153.792 280.129C153.019 280.902 150.837 280.665 149.821 280.688C143.963 280.635 138.713 278.363 134.525 274.283C129.759 269.278 128.105 263.281 128.176 256.553C128.22 254.82 128.46 253.261 128.974 251.598C129.064 251.303 129.154 251.008 129.247 250.704C129.859 248.863 130.597 247.237 131.704 245.644C131.972 245.257 131.972 245.257 132.246 244.862C135.527 240.291 140.127 237.745 145.55 236.561C151.42 235.847 157.153 236.905 161.982 240.434Z" fill="#080033"/>
|
||||
<path d="M149.566 259.116C156.446 259.116 163.326 259.116 170.414 259.116C170.429 261.516 170.444 263.916 170.46 266.389C170.47 267.913 170.48 269.436 170.491 270.96C170.507 273.376 170.524 275.792 170.539 278.209C170.549 279.969 170.561 281.729 170.574 283.489C170.58 284.42 170.587 285.351 170.592 286.282C170.597 287.161 170.603 288.039 170.61 288.918C170.613 289.389 170.615 289.861 170.618 290.332C170.633 292.172 170.733 293.988 170.916 295.819C164.148 293.827 158.053 287.006 154.58 281.238C154.137 280.453 154.137 280.453 153.585 279.947C153.173 279.083 152.836 278.187 152.486 277.297C152.384 277.039 152.283 276.781 152.178 276.516C151.413 274.542 150.786 272.588 150.32 270.524C150.267 270.299 150.213 270.074 150.159 269.843C149.372 266.286 149.566 262.757 149.566 259.116Z" fill="#05728C"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_19192_4808">
|
||||
<rect width="260" height="390" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 82 KiB |
@@ -0,0 +1,31 @@
|
||||
<svg width="320" height="226" viewBox="0 0 320 226" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_19244_45768)">
|
||||
<path d="M0 0C105.6 0 211.2 0 320 0C320 74.415 320 148.83 320 225.5C214.4 225.5 108.8 225.5 0 225.5C0 151.085 0 76.67 0 0Z" fill="#E2EFFF"/>
|
||||
<path d="M115.5 191L116.609 222.823L139.895 201.105L118.178 224.391L150 225.5L118.178 226.609L139.895 249.895L116.609 228.178L115.5 260L114.391 228.178L91.1048 249.895L112.823 226.609L81 225.5L112.823 224.391L91.1048 201.105L114.391 222.823L115.5 191Z" fill="#16A9C4"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M188 183.5L188 172L174.169 172C166.53 172 160 182.297 160 195C160 207.702 166.53 218 174.169 218L188 218L188 206.5C188 200.149 183.048 195 179.229 195C183.048 195 188 189.851 188 183.5Z" fill="#D96043"/>
|
||||
<circle cx="272.745" cy="122.485" r="22.4851" fill="#D93529"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M287.526 184.726C298.26 184.726 306.961 176.118 306.961 165.5C306.961 154.881 298.26 146.274 287.526 146.274L269.16 146.274L269.16 184.726L287.526 184.726Z" fill="#16A9C4"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M269.16 146.274C258.722 146.274 250.26 154.882 250.26 165.5C250.26 176.119 258.722 184.727 269.16 184.727L269.16 146.274Z" fill="#D96043"/>
|
||||
<path d="M269.87 205.918C266.339 210.468 259.788 211.294 255.238 207.763C250.688 204.232 249.862 197.682 253.393 193.132C256.924 188.582 272.663 184.921 272.705 185.256C272.705 185.256 273.4 201.369 269.87 205.918Z" fill="#0BA960"/>
|
||||
<rect x="12" y="189" width="12.5" height="12.5" fill="#16A9C4"/>
|
||||
<rect x="24.5" y="189" width="12.5" height="12.5" fill="#D93529"/>
|
||||
<rect x="12" y="201.5" width="12.5" height="12.5" fill="#8D5AC4"/>
|
||||
<rect x="24.5" y="201.5" width="12.5" height="12.5" fill="#0BA960"/>
|
||||
<g clip-path="url(#clip1_19244_45768)">
|
||||
<mask id="mask0_19244_45768" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="281" y="8" width="23" height="27">
|
||||
<path d="M304 8H281V35H304V8Z" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_19244_45768)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M286.75 8H281V21.5C281 28.9558 286.149 35 292.5 35C298.851 35 304 28.9558 304 21.5V8H298.25C295.074 8 292.5 11.0221 292.5 14.75C292.5 11.0221 289.926 8 286.75 8Z" fill="#0BA960"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_19244_45768">
|
||||
<rect width="320" height="225.5" fill="white"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1_19244_45768">
|
||||
<rect width="23" height="27" fill="white" transform="translate(281 8)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,31 @@
|
||||
<svg width="260" height="390" viewBox="0 0 260 390" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="260" height="390" fill="#E2EFFF"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M155.258 311.992C156.1 310.897 156.715 309.645 157.07 308.311C157.608 306.304 157.54 304.183 156.874 302.215C156.208 300.247 154.974 298.52 153.328 297.253C151.682 295.986 149.697 295.235 147.624 295.095C145.551 294.955 143.483 295.432 141.681 296.467L138.817 297.987L137.111 295.25C135.715 292.835 133.417 291.074 130.722 290.353C128.027 289.633 125.157 290.013 122.742 291.409C120.327 292.805 118.566 295.103 117.845 297.798C117.125 300.493 117.505 303.363 118.901 305.778L130.286 325.835C130.38 326.002 130.508 326.149 130.66 326.267C130.812 326.384 130.986 326.47 131.172 326.52C131.357 326.57 131.551 326.582 131.742 326.556C131.932 326.531 132.116 326.467 132.282 326.37L152.17 314.692C153.368 314.005 154.417 313.087 155.258 311.992ZM103.329 355.054C102.488 356.149 101.872 357.4 101.518 358.735C100.979 360.742 101.047 362.863 101.713 364.831C102.379 366.799 103.613 368.525 105.259 369.792C106.906 371.06 108.891 371.811 110.964 371.951C113.036 372.091 115.104 371.613 116.906 370.579L119.77 369.059L121.476 371.796C122.872 374.211 125.171 375.972 127.865 376.692C130.56 377.413 133.431 377.033 135.846 375.637C138.26 374.241 140.021 371.942 140.742 369.248C141.462 366.553 141.082 363.683 139.686 361.268L128.301 341.211C128.207 341.044 128.08 340.897 127.927 340.779C127.775 340.661 127.601 340.575 127.416 340.525C127.23 340.476 127.036 340.463 126.845 340.489C126.655 340.515 126.471 340.579 126.305 340.676L106.418 352.353C105.22 353.041 104.17 353.958 103.329 355.054ZM154.506 361.299C153.171 360.945 151.92 360.329 150.824 359.488C149.729 358.647 148.811 357.597 148.124 356.399L136.447 336.511C136.349 336.345 136.286 336.162 136.26 335.971C136.234 335.781 136.246 335.587 136.296 335.401C136.346 335.215 136.432 335.041 136.55 334.889C136.667 334.737 136.814 334.61 136.982 334.515L157.038 323.131C159.453 321.734 162.324 321.355 165.019 322.075C167.713 322.795 170.012 324.557 171.408 326.971C172.804 329.386 173.183 332.257 172.463 334.951C171.743 337.646 169.982 339.944 167.567 341.34L164.829 343.046L166.35 345.911C167.384 347.712 167.861 349.78 167.721 351.853C167.581 353.926 166.83 355.911 165.563 357.557C164.296 359.204 162.57 360.438 160.602 361.104C158.634 361.77 156.512 361.838 154.506 361.299ZM107.763 307.558C106.668 306.717 105.416 306.101 104.082 305.747C102.075 305.208 99.9538 305.276 97.9858 305.942C96.0178 306.608 94.2912 307.842 93.024 309.488C91.7568 311.135 91.0059 313.12 90.8659 315.193C90.7259 317.265 91.2032 319.333 92.2375 321.135L93.7578 323.999L91.0205 325.705C88.6056 327.102 86.8444 329.4 86.1241 332.095C85.4038 334.789 85.7836 337.659 87.1797 340.074C88.5757 342.489 90.874 344.251 93.5687 344.971C96.2634 345.691 99.1339 345.311 101.549 343.915L121.606 332.531C121.773 332.436 121.92 332.309 122.037 332.156C122.155 332.004 122.241 331.83 122.291 331.645C122.341 331.459 122.353 331.265 122.327 331.074C122.301 330.884 122.238 330.7 122.141 330.535L110.463 310.647C109.776 309.449 108.858 308.399 107.763 307.558Z" fill="#080033"/>
|
||||
<rect x="184" y="276" width="13" height="13" fill="#16A9C4"/>
|
||||
<rect x="197" y="276" width="13" height="13" fill="#D93529"/>
|
||||
<rect x="184" y="289" width="13" height="13" fill="#8D5AC4"/>
|
||||
<rect x="197" y="289" width="13" height="13" fill="#0BA960"/>
|
||||
<g clip-path="url(#clip0_19192_4776)">
|
||||
<mask id="mask0_19192_4776" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="205" y="327" width="38" height="45">
|
||||
<path d="M243 327H205V372H243V327Z" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_19192_4776)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M214.5 327H205V349.5C205 361.926 213.507 372 224 372C234.493 372 243 361.926 243 349.5V327H233.5C228.253 327 224 332.037 224 338.25C224 332.037 219.747 327 214.5 327Z" fill="#0BA960"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M136 227.75L136 215L119.699 215C110.696 215 103 226.417 103 240.5C103 254.583 110.696 266 119.699 266L136 266L136 253.25C136 246.208 130.164 240.5 125.663 240.5C130.164 240.5 136 234.792 136 227.75Z" fill="#D96043"/>
|
||||
<path d="M56.5 205.855H72.9998L56.5 222.355L40.0002 205.855H56.5Z" fill="#8D5AC4"/>
|
||||
<path d="M56.5 239.039L40.0002 239.039L56.5 222.54L72.9998 239.039L56.5 239.039Z" fill="#080033"/>
|
||||
<path d="M45.5 270L46.6092 301.823L69.8953 280.105L48.1775 303.391L80 304.5L48.1775 305.609L69.8953 328.895L46.6092 307.178L45.5 339L44.391 307.178L21.1048 328.895L42.8226 305.609L11 304.5L42.8226 303.391L21.1048 280.105L44.391 301.823L45.5 270Z" fill="#16A9C4"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.1683 374.4C58.1683 361.05 49.3981 351.008 38.5797 351.008C32.9369 351.008 23.966 351 23.0332 351C23.0332 356.846 23.0332 368.013 23.0332 374.4H58.1683Z" fill="#D96043"/>
|
||||
<path d="M211.503 172C214.195 172 216.378 174.183 216.378 176.875V188.842L220.392 177.568C221.295 175.032 224.083 173.708 226.619 174.611C229.155 175.514 230.479 178.303 229.576 180.839L225.367 192.659L233.363 182.989C235.079 180.915 238.152 180.623 240.227 182.339C242.301 184.054 242.592 187.127 240.877 189.202L233.065 198.648L243.611 192.404C245.928 191.033 248.918 191.798 250.29 194.114C251.662 196.431 250.896 199.421 248.579 200.793L237.601 207.293L250.152 204.967C252.799 204.476 255.343 206.224 255.834 208.871C256.325 211.518 254.576 214.062 251.929 214.553L239.103 216.93L251.957 219.159C254.61 219.619 256.388 222.143 255.928 224.796C255.468 227.448 252.944 229.225 250.292 228.766L237.573 226.56L248.74 233.026C251.07 234.376 251.865 237.358 250.516 239.688C249.166 242.017 246.184 242.812 243.854 241.463L232.332 234.79L240.781 245.082C242.489 247.163 242.187 250.234 240.106 251.942C238.026 253.65 234.954 253.348 233.246 251.268L225.427 241.742L229.554 253.354C230.455 255.89 229.13 258.677 226.594 259.579C224.057 260.481 221.269 259.155 220.367 256.618L216.378 245.393V257.307C216.378 259.999 214.195 262.182 211.503 262.182C208.811 262.182 206.628 259.999 206.628 257.307V245.295L202.599 256.612C201.695 259.148 198.908 260.472 196.372 259.569C193.836 258.666 192.511 255.878 193.414 253.342L197.625 241.512L189.624 251.189C187.908 253.264 184.836 253.555 182.761 251.84C180.686 250.124 180.395 247.052 182.11 244.978L189.924 235.526L179.371 241.776C177.055 243.148 174.065 242.382 172.693 240.065C171.322 237.749 172.087 234.759 174.403 233.387L185.371 226.891L172.845 229.214C170.198 229.705 167.654 227.956 167.163 225.31C166.672 222.662 168.42 220.119 171.067 219.628L183.893 217.25L171.042 215.021C168.39 214.561 166.612 212.038 167.072 209.386C167.532 206.733 170.055 204.956 172.708 205.416L185.412 207.618L174.251 201.155C171.922 199.806 171.127 196.824 172.476 194.494C173.825 192.164 176.808 191.37 179.138 192.719L190.66 199.391L182.212 189.1C180.504 187.019 180.806 183.947 182.887 182.239C184.968 180.531 188.039 180.833 189.747 182.914L197.554 192.424L193.434 180.83C192.532 178.293 193.858 175.506 196.395 174.604C198.931 173.703 201.719 175.029 202.62 177.565L206.628 188.842V176.875C206.628 174.183 208.811 172 211.503 172Z" fill="#080033"/>
|
||||
<circle cx="231.433" cy="23.8333" r="10.8333" fill="#D93529"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M229.706 35.2948C224.677 35.2948 220.6 39.4421 220.6 44.558C220.6 49.674 224.677 53.8213 229.706 53.8213L229.706 35.2948Z" fill="#D96043"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M238.554 53.8215C243.726 53.8215 247.918 49.6741 247.918 44.5582C247.918 39.4422 243.726 35.2949 238.554 35.2949L229.705 35.2949L229.705 53.8215L238.554 53.8215Z" fill="#16A9C4"/>
|
||||
<path d="M230.047 64.0307C228.346 66.2228 225.19 66.6208 222.998 64.9196C220.806 63.2184 220.408 60.0623 222.109 57.8702C223.81 55.6781 231.393 53.9142 231.413 54.0756C231.413 54.0756 231.749 61.8386 230.047 64.0307Z" fill="#0BA960"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_19192_4776">
|
||||
<rect width="38" height="45" fill="white" transform="translate(205 327)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.8 KiB |
@@ -7,7 +7,7 @@ export default {
|
||||
docs: {
|
||||
description: {
|
||||
component:
|
||||
"The ConditionalHeader component conditionally renders either HomeHeader or Header based on the current pathname.",
|
||||
"The ConditionalHeader component conditionally renders either HomeHeader (for home page) or Header (for other pages) based on the current pathname. HomeHeader is not sticky, while Header has sticky positioning.",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -8,6 +8,13 @@ const mockBlogPost = {
|
||||
"This is a sample article description that explains what the article covers.",
|
||||
author: "Sample Author",
|
||||
date: "2025-01-15",
|
||||
thumbnail: {
|
||||
horizontal: "resolving-active-conflicts-horizontal.svg",
|
||||
vertical: "resolving-active-conflicts-vertical.svg",
|
||||
},
|
||||
banner: {
|
||||
horizontal: "resolving-active-conflicts-banner.svg",
|
||||
},
|
||||
},
|
||||
htmlContent:
|
||||
"<p>This is the main content of the sample article.</p><p>It has multiple paragraphs.</p>",
|
||||
@@ -20,7 +27,7 @@ export default {
|
||||
docs: {
|
||||
description: {
|
||||
component:
|
||||
"The ContentBanner component displays the header information for blog articles, including title, description, author, and date.",
|
||||
"The ContentBanner component displays the header information for blog articles, including title, description, author, and date.\n\nImages: sm uses thumbnail.horizontal; md+ uses banner.horizontal when provided, otherwise falls back to thumbnail.horizontal; final fallback is assets/Content_Banner_2.svg.\n\nNote: page background colors are applied at the blog page level using a hex color from frontmatter (background.color), not inside this component. Thumbnail and banner images should be uploaded via the content pipeline to public/content/blog/ and referenced in frontmatter.",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -38,6 +45,31 @@ export const Default = {
|
||||
},
|
||||
};
|
||||
|
||||
export const NoBannerFallbackToThumbnail = {
|
||||
args: {
|
||||
post: {
|
||||
...mockBlogPost,
|
||||
frontmatter: {
|
||||
...mockBlogPost.frontmatter,
|
||||
banner: undefined,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export const NoImagesFallbackToDefault = {
|
||||
args: {
|
||||
post: {
|
||||
...mockBlogPost,
|
||||
frontmatter: {
|
||||
...mockBlogPost.frontmatter,
|
||||
thumbnail: undefined,
|
||||
banner: undefined,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export const LongTitle = {
|
||||
args: {
|
||||
post: {
|
||||
|
||||
@@ -8,13 +8,11 @@ export default {
|
||||
docs: {
|
||||
description: {
|
||||
component:
|
||||
"The main navigation header with responsive behavior across different breakpoints.",
|
||||
"The main navigation header with responsive behavior across different breakpoints. Features sticky positioning and active state highlighting for current page navigation.",
|
||||
},
|
||||
},
|
||||
},
|
||||
argTypes: {
|
||||
onToggle: { action: "toggled" },
|
||||
},
|
||||
argTypes: {},
|
||||
tags: ["autodocs"],
|
||||
};
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ export default {
|
||||
docs: {
|
||||
description: {
|
||||
component:
|
||||
"The home page header with transparent background, HeaderTab wrapper, and responsive behavior. Features a toggle to switch between home header and regular header.",
|
||||
"The home page header with transparent background, HeaderTab wrapper, and responsive behavior. Features active state highlighting for current page navigation.",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -102,4 +102,94 @@ test.describe("Header responsive behavior", () => {
|
||||
await page.waitForTimeout(200);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Header sticky behavior", () => {
|
||||
test("regular header is sticky on non-home pages", async ({ page }) => {
|
||||
await page.setViewportSize({ width: 1280, height: 800 });
|
||||
await page.goto("/learn");
|
||||
|
||||
const header = page.locator("header").first();
|
||||
|
||||
// Check that header has sticky positioning
|
||||
const headerStyles = await header.evaluate((el) => {
|
||||
const computed = window.getComputedStyle(el);
|
||||
return {
|
||||
position: computed.position,
|
||||
top: computed.top,
|
||||
zIndex: computed.zIndex,
|
||||
};
|
||||
});
|
||||
|
||||
expect(headerStyles.position).toBe("sticky");
|
||||
expect(headerStyles.top).toBe("0px");
|
||||
expect(headerStyles.zIndex).toBe("50");
|
||||
});
|
||||
|
||||
test("home header is not sticky on home page", async ({ page }) => {
|
||||
await page.setViewportSize({ width: 1280, height: 800 });
|
||||
await page.goto("/");
|
||||
|
||||
const header = page.locator("header").first();
|
||||
|
||||
// Check that header does not have sticky positioning
|
||||
const headerStyles = await header.evaluate((el) => {
|
||||
const computed = window.getComputedStyle(el);
|
||||
return {
|
||||
position: computed.position,
|
||||
top: computed.top,
|
||||
zIndex: computed.zIndex,
|
||||
};
|
||||
});
|
||||
|
||||
expect(headerStyles.position).not.toBe("sticky");
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Active navigation state", () => {
|
||||
test("learn page shows active state for learn navigation", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.setViewportSize({ width: 1280, height: 800 });
|
||||
await page.goto("/learn");
|
||||
|
||||
const learnLink = page.getByRole("menuitem", { name: /learn/i });
|
||||
|
||||
// Check that learn link has active styling
|
||||
const linkStyles = await learnLink.evaluate((el) => {
|
||||
const computed = window.getComputedStyle(el);
|
||||
return {
|
||||
outline: computed.outline,
|
||||
outlineColor: computed.outlineColor,
|
||||
color: computed.color,
|
||||
};
|
||||
});
|
||||
|
||||
// Should have outline and brand color
|
||||
expect(linkStyles.outline).not.toBe("none");
|
||||
expect(linkStyles.outlineColor).toContain("254, 252, 201"); // RGB value of #fefcc9
|
||||
});
|
||||
|
||||
test("home page does not show active state for learn navigation", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.setViewportSize({ width: 1280, height: 800 });
|
||||
await page.goto("/");
|
||||
|
||||
const learnLink = page.getByRole("menuitem", { name: /learn/i });
|
||||
|
||||
// Check that learn link does not have active styling
|
||||
const linkStyles = await learnLink.evaluate((el) => {
|
||||
const computed = window.getComputedStyle(el);
|
||||
return {
|
||||
outline: computed.outline,
|
||||
outlineColor: computed.outlineColor,
|
||||
};
|
||||
});
|
||||
|
||||
// Should not have active outline (may have default browser outline)
|
||||
expect(linkStyles.outline).toMatch(
|
||||
/^(none|0px|rgb\(0, 0, 0\) none 0px|rgb\(0, 0, 0\) 0px)$/,
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 527 KiB After Width: | Height: | Size: 506 KiB |
|
Before Width: | Height: | Size: 690 KiB After Width: | Height: | Size: 652 KiB |
|
Before Width: | Height: | Size: 349 KiB After Width: | Height: | Size: 343 KiB |
|
Before Width: | Height: | Size: 620 KiB After Width: | Height: | Size: 608 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 532 KiB After Width: | Height: | Size: 533 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
|
Before Width: | Height: | Size: 573 KiB After Width: | Height: | Size: 574 KiB |
|
Before Width: | Height: | Size: 613 KiB After Width: | Height: | Size: 613 KiB |
|
Before Width: | Height: | Size: 634 KiB After Width: | Height: | Size: 607 KiB |
|
Before Width: | Height: | Size: 632 KiB After Width: | Height: | Size: 608 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 341 KiB |
|
Before Width: | Height: | Size: 633 KiB After Width: | Height: | Size: 633 KiB |
|
Before Width: | Height: | Size: 778 KiB After Width: | Height: | Size: 779 KiB |
|
Before Width: | Height: | Size: 573 KiB After Width: | Height: | Size: 573 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 465 KiB After Width: | Height: | Size: 464 KiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 330 KiB After Width: | Height: | Size: 331 KiB |
|
Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 330 KiB |
|
Before Width: | Height: | Size: 342 KiB After Width: | Height: | Size: 345 KiB |
|
Before Width: | Height: | Size: 573 KiB After Width: | Height: | Size: 574 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 56 KiB |
@@ -129,10 +129,11 @@ describe("BlogPostPage", () => {
|
||||
expect(mainContainer).toBeInTheDocument();
|
||||
expect(mainContainer).toHaveClass(
|
||||
"min-h-screen",
|
||||
"bg-[#F4F3F1]",
|
||||
"relative",
|
||||
"overflow-hidden",
|
||||
);
|
||||
// Background color is applied via inline style from frontmatter hex
|
||||
expect(mainContainer).toHaveStyle({ backgroundColor: expect.any(String) });
|
||||
});
|
||||
|
||||
it("renders the content banner", async () => {
|
||||
|
||||
@@ -30,6 +30,12 @@ const mockPost = {
|
||||
description: "This is a test article description",
|
||||
author: "Test Author",
|
||||
date: "2025-04-15",
|
||||
thumbnail: {
|
||||
horizontal: "test-article-horizontal.svg",
|
||||
},
|
||||
banner: {
|
||||
horizontal: "test-article-banner.svg",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -77,12 +83,12 @@ describe("ContentBanner", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("shows different background image at md breakpoint and above", () => {
|
||||
it("shows banner image at md breakpoint and above", () => {
|
||||
render(<ContentBanner post={mockPost} />);
|
||||
|
||||
// Check for the md+ background div
|
||||
// Check for the md+ background div with banner image
|
||||
const mdBackgroundDiv = document.querySelector(
|
||||
"div[style*='Content_Banner_2.svg']",
|
||||
"div[style*='test-article-banner.svg']",
|
||||
);
|
||||
expect(mdBackgroundDiv).toBeInTheDocument();
|
||||
expect(mdBackgroundDiv).toHaveClass("hidden", "md:block");
|
||||
@@ -208,6 +214,45 @@ describe("ContentBanner", () => {
|
||||
expect(screen.getByText("Incomplete Post")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("falls back to thumbnail.horizontal when banner.horizontal is missing", () => {
|
||||
const postWithoutBanner = {
|
||||
...mockPost,
|
||||
frontmatter: {
|
||||
...mockPost.frontmatter,
|
||||
banner: undefined,
|
||||
},
|
||||
};
|
||||
|
||||
render(<ContentBanner post={postWithoutBanner} />);
|
||||
|
||||
// Should use thumbnail.horizontal for md+ breakpoint
|
||||
const mdBackgroundDiv = document.querySelector(
|
||||
"div[style*='test-article-horizontal.svg'][class*='md:block']",
|
||||
);
|
||||
expect(mdBackgroundDiv).toBeInTheDocument();
|
||||
expect(mdBackgroundDiv).toHaveClass("hidden", "md:block");
|
||||
});
|
||||
|
||||
it("falls back to default banner when no images are provided", () => {
|
||||
const postWithoutImages = {
|
||||
...mockPost,
|
||||
frontmatter: {
|
||||
...mockPost.frontmatter,
|
||||
thumbnail: undefined,
|
||||
banner: undefined,
|
||||
},
|
||||
};
|
||||
|
||||
render(<ContentBanner post={postWithoutImages} />);
|
||||
|
||||
// Should use default banner for md+ breakpoint
|
||||
const mdBackgroundDiv = document.querySelector(
|
||||
"div[style*='Content_Banner_2.svg']",
|
||||
);
|
||||
expect(mdBackgroundDiv).toBeInTheDocument();
|
||||
expect(mdBackgroundDiv).toHaveClass("hidden", "md:block");
|
||||
});
|
||||
|
||||
it("applies responsive text sizing", () => {
|
||||
render(<ContentBanner post={mockPost} />);
|
||||
|
||||
|
||||
@@ -28,21 +28,24 @@ const mockPost = {
|
||||
"This is a test description for the blog post that should be long enough to test truncation.",
|
||||
author: "Test Author",
|
||||
date: "2025-04-15",
|
||||
backgroundImages: ["/test-image-1.jpg", "/test-image-2.jpg"],
|
||||
thumbnail: {
|
||||
vertical: "test-post-vertical.svg",
|
||||
horizontal: "test-post-horizontal.svg",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
describe("ContentThumbnailTemplate", () => {
|
||||
describe("Vertical Variant", () => {
|
||||
it("should render vertical variant with correct dimensions", () => {
|
||||
it("should render vertical variant with responsive dimensions", () => {
|
||||
render(<ContentThumbnailTemplate post={mockPost} />);
|
||||
|
||||
const container = screen.getByRole("link");
|
||||
expect(container).toBeInTheDocument();
|
||||
|
||||
// Check that the component has the correct classes for dimensions
|
||||
// Check that the component has the correct classes for responsive dimensions
|
||||
const thumbnailDiv = container.querySelector("div");
|
||||
expect(thumbnailDiv).toHaveClass("w-[260px]", "h-[390px]");
|
||||
expect(thumbnailDiv).toHaveClass("w-full", "aspect-[2/3]");
|
||||
});
|
||||
|
||||
it("should display post title and description", () => {
|
||||
@@ -63,7 +66,7 @@ describe("ContentThumbnailTemplate", () => {
|
||||
});
|
||||
|
||||
describe("Horizontal Variant", () => {
|
||||
it("should render horizontal variant", () => {
|
||||
it("should render horizontal variant with responsive sizing", () => {
|
||||
render(<ContentThumbnailTemplate post={mockPost} variant="horizontal" />);
|
||||
|
||||
const container = screen.getByRole("link");
|
||||
@@ -71,7 +74,11 @@ describe("ContentThumbnailTemplate", () => {
|
||||
|
||||
// Check that the component has the correct classes for horizontal layout
|
||||
const thumbnailDiv = container.querySelector("div");
|
||||
expect(thumbnailDiv).toHaveClass("h-[225.5px]");
|
||||
expect(thumbnailDiv).toHaveClass(
|
||||
"min-w-[320px]",
|
||||
"max-w-[800px]",
|
||||
"h-[225.5px]",
|
||||
);
|
||||
});
|
||||
|
||||
it("should display post information in horizontal layout", () => {
|
||||
@@ -117,12 +124,12 @@ describe("ContentThumbnailTemplate", () => {
|
||||
expect(screen.getByText("Test Blog Post Title")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("should handle posts without background images", () => {
|
||||
it("should handle posts without thumbnail images", () => {
|
||||
const postWithoutImages = {
|
||||
...mockPost,
|
||||
frontmatter: {
|
||||
...mockPost.frontmatter,
|
||||
backgroundImages: undefined,
|
||||
thumbnail: undefined,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -131,6 +138,28 @@ describe("ContentThumbnailTemplate", () => {
|
||||
// Should still render without errors
|
||||
expect(screen.getByText("Test Blog Post Title")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("should use article-specific thumbnail images when provided", () => {
|
||||
render(<ContentThumbnailTemplate post={mockPost} />);
|
||||
|
||||
// Check that the background image uses the article-specific thumbnail
|
||||
const backgroundImg = document.querySelector(
|
||||
"img[alt*='Background for']",
|
||||
);
|
||||
expect(backgroundImg).toBeInTheDocument();
|
||||
expect(backgroundImg.src).toContain("test-post-vertical.svg");
|
||||
});
|
||||
|
||||
it("should use article-specific horizontal images for horizontal variant", () => {
|
||||
render(<ContentThumbnailTemplate post={mockPost} variant="horizontal" />);
|
||||
|
||||
// Check that the background image uses the article-specific horizontal thumbnail
|
||||
const backgroundImg = document.querySelector(
|
||||
"img[alt*='Background for']",
|
||||
);
|
||||
expect(backgroundImg).toBeInTheDocument();
|
||||
expect(backgroundImg.src).toContain("test-post-horizontal.svg");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Default Behavior", () => {
|
||||
@@ -138,7 +167,7 @@ describe("ContentThumbnailTemplate", () => {
|
||||
render(<ContentThumbnailTemplate post={mockPost} />);
|
||||
|
||||
const thumbnailDiv = screen.getByRole("link").querySelector("div");
|
||||
expect(thumbnailDiv).toHaveClass("w-[260px]", "h-[390px]");
|
||||
expect(thumbnailDiv).toHaveClass("w-full", "aspect-[2/3]");
|
||||
});
|
||||
|
||||
it("should show metadata by default", () => {
|
||||
|
||||