diff options
| author | 2024-04-29 01:09:15 +0100 | |
|---|---|---|
| committer | 2024-04-29 01:09:15 +0100 | |
| commit | f173d28100877f0e4e4144a14240d73fe88d63b4 (patch) | |
| tree | 2bd4d46f4b801727097a9422af74d298ce582852 /src/components | |
| parent | Add services YAML (diff) | |
Add component for service list
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/service.tsx | 62 | 
1 files changed, 62 insertions, 0 deletions
| diff --git a/src/components/service.tsx b/src/components/service.tsx new file mode 100644 index 0000000..57ec6ab --- /dev/null +++ b/src/components/service.tsx @@ -0,0 +1,62 @@ +import * as React from 'react'; +import styled from 'styled-components'; +import { capitalize } from '../utils'; + +export type ServiceProps = { +    name: string; +    description: string; +    url: string; +    tags: string[]; +} + +const ServiceCard = styled.a` +    background-color: #fff; +    border-radius: 10px; +    padding: 20px; +    text-align: center; +    color: #000; +    text-decoration: none; +    transition: filter 0.2s, transform 0.2s; +    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); + +    &:hover { +        filter: brightness(0.9); +        transform: translateY(-5px); +    } +`; + +const DimmedURL = styled.span` +    color: #999; +    font-size: 0.9em; +    font-family: monospace; +`; + +export const Tag = styled.span` +    background-color: #c4c4c4; +    color: #000; +    font-weight: 600; +    font-family: monospace; +    border-radius: 5px; +    padding: 5px; +    margin: 5px; +    display: inline-block; +`; + +const Service: React.FC<ServiceProps> = ({ name, description, url, tags }) => { +    return ( +        <ServiceCard href={url}> +            <h3>{name}</h3> +            <p>{description}</p> +            <div> +                { +                    tags.map((tag, index) => ( +                        <Tag key={index}>{capitalize(tag)}</Tag> +                    )) +                } +            </div> +            <DimmedURL>{url}</DimmedURL> +        </ServiceCard> +    ); +} + +export default Service; | 
