diff --git a/src/components/DynamicAwsServices.astro b/src/components/DynamicAwsServices.astro new file mode 100644 index 00000000..8cb44257 --- /dev/null +++ b/src/components/DynamicAwsServices.astro @@ -0,0 +1,38 @@ +--- +import { getCollection } from 'astro:content'; +import { ServiceBox } from './ServiceBox.tsx'; + +const allServices = await getCollection('docs', ({ id }) => { + return id.startsWith('aws/services/') && !id.includes('/index'); +}); + +const sortedServices = allServices.sort((a, b) => { + const titleA = a.data.title || a.data.linkTitle || ''; + const titleB = b.data.title || b.data.linkTitle || ''; + return titleA.localeCompare(titleB); +}); + +const serviceData = sortedServices.map(service => { + const title = service.data.title || service.data.linkTitle || 'Unknown Service'; + const description = service.data.description || `Implementation details for ${title} API`; + + const href = `/${service.id}`; + + return { + title, + description, + href + }; +}); +--- + +
+ {serviceData.map(service => ( + + ))} +
diff --git a/src/components/ServiceBox.tsx b/src/components/ServiceBox.tsx new file mode 100644 index 00000000..83e0d4d5 --- /dev/null +++ b/src/components/ServiceBox.tsx @@ -0,0 +1,18 @@ +import React from 'react'; + +interface ServiceBoxProps { + title: string; + description: string; + href: string; +} + +export const ServiceBox: React.FC = ({ title, description, href }) => { + return ( + +
+

{title}

+

{description}

+
+
+ ); +}; \ No newline at end of file diff --git a/src/content/docs/aws/aws-services.md b/src/content/docs/aws/aws-services.md deleted file mode 100644 index b7fd44a2..00000000 --- a/src/content/docs/aws/aws-services.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Local AWS Services -description: This is a dummy description -template: doc -sidebar: - order: 3 ---- - -# AWS Services - -Browse implemented aws services and check their level of parity with the AWS cloud. diff --git a/src/content/docs/aws/aws-services.mdx b/src/content/docs/aws/aws-services.mdx new file mode 100644 index 00000000..6ee38962 --- /dev/null +++ b/src/content/docs/aws/aws-services.mdx @@ -0,0 +1,13 @@ +--- +title: Local AWS Services +description: Browse LocalStack's implemented AWS services and explore their capabilities +template: doc +sidebar: + order: 3 +--- + +import DynamicAwsServices from '../../../components/DynamicAwsServices.astro'; + +Browse LocalStack's implemented AWS services and explore their comprehensive feature sets. Each service provides detailed documentation on APIs, configuration options, and practical examples to help you get started quickly. + + diff --git a/src/styles/global.css b/src/styles/global.css index b30b4b5d..1c5f7078 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -2,4 +2,50 @@ @import '@astrojs/starlight-tailwind'; @import 'tailwindcss/theme.css' layer(theme); -@import 'tailwindcss/utilities.css' layer(utilities); \ No newline at end of file +@import 'tailwindcss/utilities.css' layer(utilities); + +.service-box { + display: block; + padding: 1.5rem; + border: 1px solid var(--sl-color-gray-5); + border-radius: 0.5rem; + text-decoration: none; + color: inherit; + transition: all 0.2s ease; + height: 100%; +} + +.service-box:hover { + border-color: var(--sl-color-accent); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + transform: translateY(-2px); +} + +.service-box-content { + height: 100%; + display: flex; + flex-direction: column; +} + +.service-box-title { + font-size: 1.125rem; + font-weight: 600; + margin: 0 0 0.5rem 0; + color: var(--sl-color-white); + line-height: 1.4; +} + +.service-box-description { + font-size: 0.875rem; + color: var(--sl-color-gray-2); + margin: 0; + line-height: 1.5; + flex-grow: 1; +} + +.service-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 1rem; + margin-top: 2rem; +}