Skip to content

Commit ebad042

Browse files
committed
Adding a component - partial implementation to have a starting place for themes
1 parent b345a33 commit ebad042

File tree

5 files changed

+140
-0
lines changed

5 files changed

+140
-0
lines changed

.idea/workspace.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6+
"@heroicons/react": "^2.1.5",
67
"@testing-library/jest-dom": "^5.17.0",
78
"@testing-library/react": "^13.4.0",
89
"@testing-library/user-event": "^13.5.0",

src/components/FeatureGrid.js

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
import React from 'react';
2+
import { ArrowPathIcon, CloudArrowUpIcon, LockClosedIcon } from '@heroicons/react/20/solid';
3+
4+
const features = [
5+
{
6+
name: 'Multicloud Deployment',
7+
description:
8+
'Seamlessly deploy and manage infrastructure across AWS, Google Cloud, and Azure, all from a single platform.',
9+
href: '#',
10+
icon: CloudArrowUpIcon,
11+
},
12+
{
13+
name: 'Observability',
14+
description:
15+
'Built-in monitoring and visibility with integrated tools like Prometheus, Grafana, and FluentBit, ensuring real-time insights and log management.',
16+
href: '#',
17+
icon: LockClosedIcon,
18+
},
19+
{
20+
name: 'In-Built Tracing Support',
21+
description:
22+
'Native support for distributed tracing, enabling detailed tracking and optimization of application performance across microservices.',
23+
href: '#',
24+
icon: ArrowPathIcon,
25+
},
26+
{
27+
name: 'Container Image Management',
28+
description:
29+
'Automatically sets up container registries, handles permissions, and manages credentials for deploying images within your cluster.',
30+
href: '#',
31+
icon: CloudArrowUpIcon,
32+
},
33+
{
34+
name: 'Service Configurations',
35+
description:
36+
'Manages service settings by handling YAML configurations automatically and requiring only essential input from you.',
37+
href: '#',
38+
icon: LockClosedIcon,
39+
},
40+
{
41+
name: 'Secure Datastore Connections',
42+
description:
43+
'Simplifies database setup, including creating datastores, managing firewalls, and securely attaching credentials to service pods.',
44+
href: '#',
45+
icon: ArrowPathIcon,
46+
},
47+
// {
48+
// name: 'Ingress Management',
49+
// description:
50+
// 'Automatically configures host attachments and manages TLS certificates to securely expose your services to the internet.',
51+
// href: '#',
52+
// icon: CloudArrowUpIcon,
53+
// },
54+
// {
55+
// name: 'Permission Management',
56+
// description:
57+
// 'Streamlines user permission setup by allowing you to assign RBAC using email addresses, simplifying access control.',
58+
// href: '#',
59+
// icon: LockClosedIcon,
60+
// },
61+
];
62+
63+
export default function FeatureGrid({ title, heading, subheading, ...props }) {
64+
return (
65+
<div className="bg-gray-50 py-24 mt-8 sm:py-32">
66+
<div className="mx-auto max-w-7xl px-6 lg:px-8">
67+
<div className="mx-auto max-w-2xl lg:text-center">
68+
<h2 className="text-base font-semibold leading-7 text-primary-600">{title}</h2>
69+
<p className="mt-2 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
70+
{heading}
71+
</p>
72+
<p className="mt-6 text-lg leading-8 text-gray-600">
73+
{subheading}
74+
</p>
75+
</div>
76+
<div className="mx-auto mt-16 max-w-2xl sm:mt-20 lg:mt-24 lg:max-w-none">
77+
<dl className="grid max-w-xl grid-cols-1 gap-x-8 gap-y-16 lg:max-w-none lg:grid-cols-3">
78+
{features.map((feature) => (
79+
<div key={feature.name} className="flex flex-col">
80+
<dt className="flex items-center gap-x-3 text-base font-semibold leading-7 text-gray-900">
81+
<feature.icon aria-hidden="true" className="h-5 w-5 flex-none text-primary-600" />
82+
{feature.name}
83+
</dt>
84+
<dd className="mt-4 flex flex-auto flex-col text-base leading-7 text-gray-600">
85+
<p className="flex-auto">{feature.description}</p>
86+
<p className="mt-6">
87+
{/* <a
88+
href={feature.href}
89+
className="text-sm font-semibold leading-6 text-indigo-600"
90+
>
91+
Learn more <span aria-hidden="true">→</span>
92+
</a> */}
93+
</p>
94+
</dd>
95+
</div>
96+
))}
97+
</dl>
98+
</div>
99+
</div>
100+
</div>
101+
);
102+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import FeatureGrid from "./FeatureGrid";
2+
import {fn} from "@storybook/test";
3+
4+
export default {
5+
title: 'Marketing/FeatureGrid',
6+
component: FeatureGrid,
7+
argTypes: {
8+
title: { control: 'text' },
9+
heading: { control: 'text' },
10+
subheading: { control: 'text' },
11+
},
12+
};
13+
14+
export const Primary = {
15+
args: {
16+
title: "Deploy faster",
17+
heading: "Everything you need to deploy your app",
18+
subheading: 'Streamline your infrastructure provision process with user-friendly tools and automated updates. Get your app to users quickly and efficiently—focus on building, while we handle the rest!',
19+
},
20+
};

0 commit comments

Comments
 (0)