# Filterable Portfolio Category: showcase Description: Presents a dynamic portfolio where users can filter projects by category, with details for each item. ## Implementation Context - **Primary**: Use **SenangStart CSS** for the implementation. - **Reference**: Tailwind CSS is provided for stylistic context only. ## SenangStart CSS Usage To use SenangStart CSS, simply include the script in your HTML ``: ```html My App

Hello SenangStart!

Zero config, instant styling.

``` **Documentation**: [Getting Started Guide](https://bookklik-technologies.github.io/senangstart-css/guide/getting-started.html) ## SenangStart CSS Code ```html <section layout="container" space="m-x:auto m-y:large p-x:medium-3x tw-lg:m-y:big-3x tw-lg:p-x:big-3x" x-data="{ activeCategory: 'all' }" > <div layout="grid grid-cols:1 tw-lg:grid-cols:2" space="m-b:large"> <div> <div space="m-b:small max-w:[max-content] p-x:small-3x p-y:tiny" visual="rounded:medium bg:blue-100 text:blue-600" > <p visual="text-size:small font:tw-bold">PORTFOLIO</p> </div> <h2 space="m-b:medium" visual="text-size:grand font:tw-bold tw-lg:text-size:mount">Featured Work</h2> </div> <div layout="flex items:center"> <p visual="text-size:large tw-lg:text-size:big"> Browse through our collection of successful projects and creative solutions. </p> </div> </div> <!-- Category Filters --> <div layout="flex wrap" space="m-b:large g:medium"> <button @click="activeCategory = 'all'" space="p-x:medium p-y:small" visual="rounded:medium text-size:small font:tw-semibold transition:colors" :class="activeCategory === 'all' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > All Projects </button> <button @click="activeCategory = 'web'" space="p-x:medium p-y:small" visual="rounded:medium text-size:small font:tw-semibold transition:colors" :class="activeCategory === 'web' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > Web Development </button> <button @click="activeCategory = 'mobile'" space="p-x:medium p-y:small" visual="rounded:medium text-size:small font:tw-semibold transition:colors" :class="activeCategory === 'mobile' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > Mobile Apps </button> <button @click="activeCategory = 'design'" space="p-x:medium p-y:small" visual="rounded:medium text-size:small font:tw-semibold transition:colors" :class="activeCategory === 'design' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > UI/UX Design </button> </div> <!-- Gallery Grid --> <div layout="grid" space="g:large"> <!-- Project Card 1 --> <div x-show="activeCategory === 'all' || activeCategory === 'web'" layout="grid overflow:hidden tw-lg:grid-cols:2" visual="rounded:big bg:neutral-100" class="group" > <div layout="order:2 flex col justify:center tw-lg:order:1" space="p:large"> <div space="m-b:small" visual="text-size:small font:tw-semibold text:blue-600"> Web Development </div> <h3 space="m-b:medium" visual="text-size:huge font:tw-bold">E-commerce Platform</h3> <p space="m-b:medium-3x" visual="text-size:large"> A complete online shopping solution with advanced features and seamless user experience. </p> <div layout="flex wrap" space="g:small"> <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >React</span > <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >Node.js</span > <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >MongoDB</span > </div> </div> <div layout="order:1 overflow:hidden tw-lg:order:2"> <img src="https://placehold.co/800x600" alt="E-commerce Platform" layout="object:cover" space="h:[100%] w:[100%]" visual="transition:transform duration:slow" class="group-hover:scale-110" /> </div> </div> <!-- Project Card 2 --> <div x-show="activeCategory === 'all' || activeCategory === 'mobile'" layout="grid overflow:hidden tw-lg:grid-cols:2" visual="rounded:big bg:neutral-100" class="group" > <div layout="overflow:hidden"> <img src="https://placehold.co/800x600" alt="Mobile App" layout="object:cover" space="h:[100%] w:[100%]" visual="transition:transform duration:slow" class="group-hover:scale-110" /> </div> <div layout="flex col justify:center" space="p:large"> <div space="m-b:small" visual="text-size:small font:tw-semibold text:blue-600"> Mobile Development </div> <h3 space="m-b:medium" visual="text-size:huge font:tw-bold">Fitness Tracking App</h3> <p space="m-b:medium-3x" visual="text-size:large"> A comprehensive fitness tracking application with real-time monitoring and personalized insights. </p> <div layout="flex wrap" space="g:small"> <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >React Native</span > <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >Firebase</span > <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >GraphQL</span > </div> </div> </div> <!-- Project Card 3 --> <div x-show="activeCategory === 'all' || activeCategory === 'design'" layout="grid overflow:hidden tw-lg:grid-cols:2" visual="rounded:big bg:neutral-100" class="group" > <div layout="order:2 flex col justify:center tw-lg:order:1" space="p:large"> <div space="m-b:small" visual="text-size:small font:tw-semibold text:blue-600"> UI/UX Design </div> <h3 space="m-b:medium" visual="text-size:huge font:tw-bold">Financial Dashboard</h3> <p space="m-b:medium-3x" visual="text-size:large"> An intuitive dashboard design for monitoring and analyzing financial data with advanced visualization. </p> <div layout="flex wrap" space="g:small"> <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >Figma</span > <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >Adobe XD</span > <span space="p-x:small-3x p-y:tiny" visual="rounded:round bg:blue-100 text-size:small text:blue-600" >Prototyping</span > </div> </div> <div layout="order:1 overflow:hidden tw-lg:order:2"> <img src="https://placehold.co/800x600" alt="Dashboard Design" layout="object:cover" space="h:[100%] w:[100%]" visual="transition:transform duration:slow" class="group-hover:scale-110" /> </div> </div> </div> </section> ``` ## Tailwind CSS Code ```html <section class="container mx-auto my-8 px-6 lg:my-16 lg:px-16" x-data="{ activeCategory: 'all' }" > <div class="mb-8 grid grid-cols-1 lg:grid-cols-2"> <div> <div class="mb-2 max-w-max rounded-lg bg-blue-100 px-3 py-1 text-blue-600" > <p class="text-sm font-bold">PORTFOLIO</p> </div> <h2 class="mb-4 text-3xl font-bold lg:text-5xl">Featured Work</h2> </div> <div class="flex items-center"> <p class="text-lg lg:text-xl"> Browse through our collection of successful projects and creative solutions. </p> </div> </div> <!-- Category Filters --> <div class="mb-8 flex flex-wrap gap-4"> <button @click="activeCategory = 'all'" class="rounded-lg px-4 py-2 text-sm font-semibold transition-colors" :class="activeCategory === 'all' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > All Projects </button> <button @click="activeCategory = 'web'" class="rounded-lg px-4 py-2 text-sm font-semibold transition-colors" :class="activeCategory === 'web' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > Web Development </button> <button @click="activeCategory = 'mobile'" class="rounded-lg px-4 py-2 text-sm font-semibold transition-colors" :class="activeCategory === 'mobile' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > Mobile Apps </button> <button @click="activeCategory = 'design'" class="rounded-lg px-4 py-2 text-sm font-semibold transition-colors" :class="activeCategory === 'design' ? 'bg-blue-600 text-white' : 'bg-neutral-100 hover:bg-neutral-200'" > UI/UX Design </button> </div> <!-- Gallery Grid --> <div class="grid gap-8"> <!-- Project Card 1 --> <div x-show="activeCategory === 'all' || activeCategory === 'web'" class="group grid overflow-hidden rounded-2xl bg-neutral-100 lg:grid-cols-2" > <div class="order-2 flex flex-col justify-center p-8 lg:order-1"> <div class="mb-2 text-sm font-semibold text-blue-600"> Web Development </div> <h3 class="mb-4 text-2xl font-bold">E-commerce Platform</h3> <p class="mb-6 text-lg"> A complete online shopping solution with advanced features and seamless user experience. </p> <div class="flex flex-wrap gap-2"> <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >React</span > <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >Node.js</span > <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >MongoDB</span > </div> </div> <div class="order-1 overflow-hidden lg:order-2"> <img src="https://placehold.co/800x600" alt="E-commerce Platform" class="h-full w-full object-cover transition-transform duration-300 group-hover:scale-110" /> </div> </div> <!-- Project Card 2 --> <div x-show="activeCategory === 'all' || activeCategory === 'mobile'" class="group grid overflow-hidden rounded-2xl bg-neutral-100 lg:grid-cols-2" > <div class="overflow-hidden"> <img src="https://placehold.co/800x600" alt="Mobile App" class="h-full w-full object-cover transition-transform duration-300 group-hover:scale-110" /> </div> <div class="flex flex-col justify-center p-8"> <div class="mb-2 text-sm font-semibold text-blue-600"> Mobile Development </div> <h3 class="mb-4 text-2xl font-bold">Fitness Tracking App</h3> <p class="mb-6 text-lg"> A comprehensive fitness tracking application with real-time monitoring and personalized insights. </p> <div class="flex flex-wrap gap-2"> <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >React Native</span > <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >Firebase</span > <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >GraphQL</span > </div> </div> </div> <!-- Project Card 3 --> <div x-show="activeCategory === 'all' || activeCategory === 'design'" class="group grid overflow-hidden rounded-2xl bg-neutral-100 lg:grid-cols-2" > <div class="order-2 flex flex-col justify-center p-8 lg:order-1"> <div class="mb-2 text-sm font-semibold text-blue-600"> UI/UX Design </div> <h3 class="mb-4 text-2xl font-bold">Financial Dashboard</h3> <p class="mb-6 text-lg"> An intuitive dashboard design for monitoring and analyzing financial data with advanced visualization. </p> <div class="flex flex-wrap gap-2"> <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >Figma</span > <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >Adobe XD</span > <span class="rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-600" >Prototyping</span > </div> </div> <div class="order-1 overflow-hidden lg:order-2"> <img src="https://placehold.co/800x600" alt="Dashboard Design" class="h-full w-full object-cover transition-transform duration-300 group-hover:scale-110" /> </div> </div> </div> </section> ```