project-cards #5
12
package-lock.json
generated
12
package-lock.json
generated
@ -24,6 +24,7 @@
|
|||||||
"eslint-plugin-svelte": "^2.35.1",
|
"eslint-plugin-svelte": "^2.35.1",
|
||||||
"flowbite": "^2.3.0",
|
"flowbite": "^2.3.0",
|
||||||
"flowbite-svelte": "^0.46.1",
|
"flowbite-svelte": "^0.46.1",
|
||||||
|
"flowbite-svelte-icons": "^1.6.1",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"prettier": "^3.1.1",
|
"prettier": "^3.1.1",
|
||||||
"prettier-plugin-svelte": "^3.1.2",
|
"prettier-plugin-svelte": "^3.1.2",
|
||||||
@ -2265,6 +2266,17 @@
|
|||||||
"svelte": "^3.55.1 || ^4.0.0"
|
"svelte": "^3.55.1 || ^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/flowbite-svelte-icons": {
|
||||||
|
"version": "1.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/flowbite-svelte-icons/-/flowbite-svelte-icons-1.6.1.tgz",
|
||||||
|
"integrity": "sha512-Kw/7BzA6fqlFq7tBNudwX0KVU4cbyyXcMcgHTraMwGBtvBQan0RKMbvWwqm4JZNvLGAvRv1BM2EF7rzo/oam1Q==",
|
||||||
|
"dev": true,
|
||||||
|
"peerDependencies": {
|
||||||
|
"svelte": "^3.54.0 || ^4.0.0 || ^5.0.0",
|
||||||
|
"tailwind-merge": "^2.0.0",
|
||||||
|
"tailwindcss": "^3.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/foreground-child": {
|
"node_modules/foreground-child": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
"eslint-plugin-svelte": "^2.35.1",
|
"eslint-plugin-svelte": "^2.35.1",
|
||||||
"flowbite": "^2.3.0",
|
"flowbite": "^2.3.0",
|
||||||
"flowbite-svelte": "^0.46.1",
|
"flowbite-svelte": "^0.46.1",
|
||||||
|
"flowbite-svelte-icons": "^1.6.1",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"prettier": "^3.1.1",
|
"prettier": "^3.1.1",
|
||||||
"prettier-plugin-svelte": "^3.1.2",
|
"prettier-plugin-svelte": "^3.1.2",
|
||||||
|
@ -6,5 +6,5 @@ body {
|
|||||||
transition:
|
transition:
|
||||||
background-color 0.2s ease-in-out,
|
background-color 0.2s ease-in-out,
|
||||||
color 0.2s ease-in-out;
|
color 0.2s ease-in-out;
|
||||||
@apply bg-stone-100 dark:bg-gray-900 text-slate-600 dark:text-stone-100 text-center;
|
@apply bg-stone-200 dark:bg-gray-900 text-gray-900 dark:text-stone-200 text-center;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
import { AccordionItem } from 'flowbite-svelte';
|
import { AccordionItem } from 'flowbite-svelte';
|
||||||
import { Heading, Secondary } from 'flowbite-svelte';
|
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
export let index;
|
export let index;
|
||||||
export let link;
|
export let link;
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<ProjectHeader {title} />
|
<ProjectHeader {title} />
|
||||||
<VendorGallery {vendors} />
|
|
||||||
<ProjectDescription {description} />
|
<ProjectDescription {description} />
|
||||||
<ProjectRepo {repo} {rss} />
|
<VendorGallery {vendors} />
|
||||||
|
<ProjectRepo {repo} {rss} {url} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
<script>
|
||||||
|
export let description;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<p>{@html description}</p>
|
@ -2,4 +2,4 @@
|
|||||||
export let title;
|
export let title;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<h3 class="text-2xl">{title}</h3>
|
<h3 class="text-3xl mb-4">{title}</h3>
|
||||||
|
@ -1,6 +1,23 @@
|
|||||||
<script>
|
<script>
|
||||||
import RssContainer from './RssContainer.svelte';
|
import RssContainer from './RssContainer.svelte';
|
||||||
|
import { GlobeOutline, GithubSolid } from 'flowbite-svelte-icons';
|
||||||
|
export let url;
|
||||||
|
export let repo;
|
||||||
export let rss;
|
export let rss;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<div class="flex justify-center gap-12 my-12">
|
||||||
|
<div>
|
||||||
|
<a href={url}>
|
||||||
|
<GlobeOutline class="hover:text-slate-400 mx-auto" />
|
||||||
|
</a>
|
||||||
|
<p>www</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href={repo}>
|
||||||
|
<GithubSolid class="hover:text-slate-400 mx-auto" />
|
||||||
|
</a>
|
||||||
|
<p>git</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<RssContainer url={rss} />
|
<RssContainer url={rss} />
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import RssFeed from '../RssFeed.svelte';
|
import RssFeed from './RssFeed.svelte';
|
||||||
export let url;
|
export let url;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h2 class="text-xl mt-4 font-normal">Here are the 5 most recent commits</h2>
|
<h2 class="text-xl mt-4">recent commits</h2>
|
||||||
<RssFeed {url} />
|
<RssFeed {url} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
<script>
|
||||||
|
import VendorIcon from './VendorIcon.svelte';
|
||||||
|
|
||||||
|
export let vendors;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="my-4 dark:bg-slate-800 w-fit mx-auto rounded-2xl p-2">
|
||||||
|
<h3 class="text-xl mb-2">built with</h3>
|
||||||
|
<div class="flex justify-center gap-6">
|
||||||
|
{#each vendors as vendor}
|
||||||
|
<VendorIcon {...vendor} />
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
12
src/lib/ProjectCard/VendorIcon.svelte
Normal file
12
src/lib/ProjectCard/VendorIcon.svelte
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<script>
|
||||||
|
export let name;
|
||||||
|
export let img;
|
||||||
|
export let url;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<a href={url}>
|
||||||
|
<div class="flex flex-col justify-center">
|
||||||
|
<img src={img} alt={name} class="max-h-12 max-w-12 self-center" />
|
||||||
|
<p>{name}</p>
|
||||||
|
</div>
|
||||||
|
</a>
|
@ -1,7 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>file_type_svelte</title><path d="M26.47,5.7A8.973,8.973,0,0,0,14.677,3.246L7.96,7.4a7.461,7.461,0,0,0-3.481,5.009,7.686,7.686,0,0,0,.8,5.058,7.358,7.358,0,0,0-1.151,2.8,7.789,7.789,0,0,0,1.4,6.028,8.977,8.977,0,0,0,11.794,2.458L24.04,24.6a7.468,7.468,0,0,0,3.481-5.009,7.673,7.673,0,0,0-.8-5.062,7.348,7.348,0,0,0,1.152-2.8A7.785,7.785,0,0,0,26.47,5.7" style="fill:#ff3e00"/><path d="M14.022,26.64A5.413,5.413,0,0,1,8.3,24.581a4.678,4.678,0,0,1-.848-3.625,4.307,4.307,0,0,1,.159-.61l.127-.375.344.238a8.76,8.76,0,0,0,2.628,1.274l.245.073-.025.237a1.441,1.441,0,0,0,.271.968,1.63,1.63,0,0,0,1.743.636,1.512,1.512,0,0,0,.411-.175l6.7-4.154a1.366,1.366,0,0,0,.633-.909,1.407,1.407,0,0,0-.244-1.091,1.634,1.634,0,0,0-1.726-.622,1.509,1.509,0,0,0-.413.176l-2.572,1.584a4.934,4.934,0,0,1-1.364.582,5.415,5.415,0,0,1-5.727-2.06A4.678,4.678,0,0,1,7.811,13.1,4.507,4.507,0,0,1,9.9,10.09l6.708-4.154a4.932,4.932,0,0,1,1.364-.581A5.413,5.413,0,0,1,23.7,7.414a4.679,4.679,0,0,1,.848,3.625,4.272,4.272,0,0,1-.159.61l-.127.375-.344-.237a8.713,8.713,0,0,0-2.628-1.274l-.245-.074.025-.237a1.438,1.438,0,0,0-.272-.968,1.629,1.629,0,0,0-1.725-.622,1.484,1.484,0,0,0-.411.176l-6.722,4.14a1.353,1.353,0,0,0-.631.908,1.394,1.394,0,0,0,.244,1.092,1.634,1.634,0,0,0,1.726.621,1.538,1.538,0,0,0,.413-.175l2.562-1.585a4.9,4.9,0,0,1,1.364-.581,5.417,5.417,0,0,1,5.728,2.059,4.681,4.681,0,0,1,.843,3.625A4.5,4.5,0,0,1,22.1,21.905l-6.707,4.154a4.9,4.9,0,0,1-1.364.581" style="fill:#fff"/></svg>
|
||||||
aria-label="Svelte" role="img"
|
|
||||||
viewBox="0 0 512 512"><rect
|
|
||||||
width="512" height="512"
|
|
||||||
rx="15%"
|
|
||||||
fill="#ffffff"/><path fill="#ff3e00" d="M395 115c-35-51-106-66-157-34l-89 57a103 103 0 00-46 69 108 108 0 0010 69 103 103 0 00-15 39 109 109 0 0019 82c35 51 106 66 157 34l89-57a103 103 0 0046-69 108 108 0 00-10-69 103 103 0 0015-39 109 109 0 00-19-82"/><path fill="#ffffff" d="M230 402a71 71 0 01-77-28 66 66 0 01-11-50 62 62 0 012-8l2-5 5 3a115 115 0 0035 17l3 1v4a20 20 0 003 13 21 21 0 0023 9 20 20 0 006-3l89-57a19 19 0 008-12 20 20 0 00-3-15 21 21 0 00-23-9 20 20 0 00-5 3l-34 21a65 65 0 01-19 8 71 71 0 01-76-28 66 66 0 01-11-50 62 62 0 0128-41l89-57a65 65 0 0118-8 71 71 0 0177 28 66 66 0 0111 50 63 63 0 01-2 8l-2 5-5-3a115 115 0 00-35-17l-3-1v-4a20 20 0 00-3-13 21 21 0 00-23-9 20 20 0 00-6 3l-89 57a19 19 0 00-8 12 20 20 0 003 15 21 21 0 0023 9 20 20 0 005-3l34-21a65 65 0 0119-8 71 71 0 0176 28 66 66 0 0111 50 62 62 0 01-28 41l-89 57a65 65 0 01-18 8"/></svg>
|
|
After Width: | Height: | Size: 1.6 KiB |
@ -4,30 +4,36 @@ import vercelIcon from '$lib/images/vendorIcons/vercelIcon.svg';
|
|||||||
import flowbiteLight from '$lib/images/vendorIcons/flowbiteLight.svg';
|
import flowbiteLight from '$lib/images/vendorIcons/flowbiteLight.svg';
|
||||||
|
|
||||||
export const projects = [
|
export const projects = [
|
||||||
{
|
{
|
||||||
category: "svelte",
|
category: 'svelte',
|
||||||
title: "portfolio",
|
title: 'portfolio',
|
||||||
url: "https://rannes.dev",
|
url: 'https://rannes.dev',
|
||||||
description: "A project to get familiar with Svelte and showcase my future projects.",
|
description:
|
||||||
repo: "https://gitea.rannes.dev/rannes.dev/my-portfolio",
|
'This project was initially to get familiar with Svelte and showcase my future projects. I find myself that I keep coming back to expand on it whenever I need a break from React.',
|
||||||
rss: "https://gitea.rannes.dev/rannes.dev/my-portfolio.rss",
|
repo: 'https://gitea.rannes.dev/rannes.dev/my-portfolio',
|
||||||
image: "",
|
rss: 'https://gitea.rannes.dev/rannes.dev/my-portfolio.rss',
|
||||||
vendors: [
|
image: '',
|
||||||
{
|
vendors: [
|
||||||
name: "Svelte",
|
{
|
||||||
img: svelteIcon
|
name: 'Svelte',
|
||||||
},
|
img: svelteIcon,
|
||||||
{
|
url: 'https://svelte.dev/'
|
||||||
name: "Tailwind CSS",
|
},
|
||||||
img: tailwindIcon
|
{
|
||||||
},
|
name: 'Tailwind',
|
||||||
{
|
img: tailwindIcon,
|
||||||
name: "Flowbite-svelte",
|
url: 'https://tailwindcss.com/'
|
||||||
img: flowbiteLight
|
},
|
||||||
},
|
{
|
||||||
{
|
name: 'Flowbite',
|
||||||
name: "Vercel",
|
img: flowbiteLight,
|
||||||
img: vercelIcon
|
url: 'https://flowbite-svelte.com//'
|
||||||
},]
|
},
|
||||||
}
|
{
|
||||||
]
|
name: 'Vercel',
|
||||||
|
img: vercelIcon,
|
||||||
|
url: 'https://vercel.com/'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
<DarkMode />
|
<DarkMode />
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="mx-auto max-w-xs sm:max-w-md md:max-w-3xl text-center">
|
<div class="mt-6 mx-auto max-w-xs sm:max-w-md md:max-w-3xl text-center">
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
<footer class="mt-12">
|
<footer class="mt-12">
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { fade } from 'svelte/transition';
|
import { fade } from 'svelte/transition';
|
||||||
import RssFeed from '../../lib/RssFeed.svelte';
|
import RssContainer from '$lib/ProjectCard/RssContainer.svelte';
|
||||||
import RssContainer from '../../lib/RssContainer.svelte';
|
|
||||||
const weatherRss = 'https://gitea.rannes.dev/rannes.dev/local-weather.rss';
|
const weatherRss = 'https://gitea.rannes.dev/rannes.dev/local-weather.rss';
|
||||||
const titlesRss = 'https://gitea.rannes.dev/rannes.dev/titles.rss';
|
const titlesRss = 'https://gitea.rannes.dev/rannes.dev/titles.rss';
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user