{"id":19785193,"url":"https://github.com/devmor-j/fm-order-summary-component","last_synced_at":"2026-03-02T09:34:21.571Z","repository":{"id":194856664,"uuid":"477098572","full_name":"devmor-j/fm-order-summary-component","owner":"devmor-j","description":null,"archived":false,"fork":false,"pushed_at":"2022-04-02T15:43:52.000Z","size":193,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-28T13:25:12.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devmor-j.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-04-02T15:43:35.000Z","updated_at":"2022-04-02T15:43:56.000Z","dependencies_parsed_at":"2023-09-15T12:35:12.654Z","dependency_job_id":null,"html_url":"https://github.com/devmor-j/fm-order-summary-component","commit_stats":null,"previous_names":["devmor-j/fm-order-summary-component"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devmor-j/fm-order-summary-component","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmor-j%2Ffm-order-summary-component","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmor-j%2Ffm-order-summary-component/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmor-j%2Ffm-order-summary-component/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmor-j%2Ffm-order-summary-component/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devmor-j","download_url":"https://codeload.github.com/devmor-j/fm-order-summary-component/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devmor-j%2Ffm-order-summary-component/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29997213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T06:13:54.349Z","updated_at":"2026-03-02T09:34:21.512Z","avatar_url":"https://github.com/devmor-j.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Frontend Mentor - Order summary card solution\n\nThis is my solution to the [Order summary card challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/order-summary-component-QlPmajDUj). Frontend Mentor challenges help you improve your coding skills by building realistic projects. \n\n## Table of contents\n\n- [Overview](#overview)\n  - [The challenge](#the-challenge)\n  - [Screenshot](#screenshot)\n  - [Links](#links)\n- [My process](#my-process)\n  - [Built with](#built-with)\n  - [What I learned](#what-i-learned)\n- [Author](#author)\n\n## Overview\n\n### The challenge\n\nUsers should be able to:\n\n- See hover states for interactive elements\n\n### Screenshot\n\nDesktop (1536px):\n\n![Desktop screenshot](./screenshot/Desktop%20-%20Order%20summary%20card.webp)\n\nMobile (375px):\n\n![Mobile screenshot](./screenshot/Mobile%20-%20Order%20summary%20card.webp)\n\n### Links\n\n- Solution URL: [Github Repo](https://github.com/devmor-j/fm-order-summary-component/)\n- Live Site URL: [Github Pages](https://devmor-j.github.io/fm-order-summary-component/)\n\n## My process\n\n### Built with\n\n- Semantic HTML5 markup\n- Mobile-first workflow\n- [Vite](https://vitejs.dev/) - Build and development tool\n- [WindiCSS](https://windicss.org/) - Main framework for CSS styling\n\n### What I learned\n\nI used WindiCSS - Next generation utility-first CSS framework and that is sure true :)\n\nWindiCSS is really awesome, I think it's ready for production use and adoption. I enjoyed using attributify feature to separate some classes which makes css styles even more readlible.\n\nThe way I used it was that everything should go into `class=\"...\"` as before but only styles that effect visual things like *color, size, background, text, border, ...* should be applied using attributify syntax. For example:\n\n\n```html\n\u003celement w:text=\"center blue-500 2xl\"\u003e\n```\nIs equal to:\n\n```html\n\u003celement class=\"... text-center text-blue-500 text-2xl ...\"\u003e\n```\n\n\u003e (`w:` is the [optional prefix](https://windicss.org/features/attributify.html#prefix))\n\nLayout and composition classes like `flex`, `px-4`, `w-full`, `space-y-8`, ... are added directly inside html *class* attribute.\n\nWith this mindset, styling can become very easy. Now I know when I'm adjusting *paddings* and *display* properties, don't have to crawl a long string just to find where things are.\n\nAnother example: Don't write your css inside a giant string text :) like this (copied from [this project](https://github.com/devmor-j/fm-stats-preview-card-component)):\n\n```html\n\u003celement class=\"bg-clr-card | max-w-[18rem] sm:max-w-6xl mx-4 | flex flex-col sm:flex-row-reverse gap-2 | text-[14px] lg:text-[15px] text-center sm:text-left | rounded-xl border border-clr-main\"\u003e\n  ```\n\n  \u003e As you can tell I used `|` character to divide classes which is inspired by [Cube CSS](https://cube.fyi/grouping.html).\n  \n  Instead we can write that line with WindiCSS like this:\n\n  ```html\n\u003celement \nclass=\"max-w-[18rem] sm:max-w-6xl mx-4 | flex flex-col sm:flex-row-reverse gap-2 | sm:text-left\" \nbg=\"clr-card\" \ntext=\"[14px] center\" lg:text=\"[15px]\" \nrounded=\"xl\" \nborder=\"1 clr-main\"\u003e\n  ```\n\n\u003e Or using a prefix like `w:` for each attribute which is the way I prefer and that prevents any collisions with the html attributes themselves.\n\n  ```html\n\u003celement \nclass=\"max-w-[18rem] sm:max-w-6xl mx-4 | flex flex-col sm:flex-row-reverse gap-2 | sm:text-left\" \nw:bg=\"clr-card\" \nw:text=\"[14px] center\" w:lg:text=\"[15px]\" \nw:rounded=\"xl\" \nw:border=\"1 clr-main\"\u003e\n  ```\n\nWindiCSS is fully compatible with TailwindCSS v2. Read more at [WindiCSS Guide](https://windicss.org/guide/).\n\n## Author\n\n- Frontend Mentor - [@devmor-j](https://www.frontendmentor.io/profile/devmor-j)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmor-j%2Ffm-order-summary-component","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevmor-j%2Ffm-order-summary-component","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmor-j%2Ffm-order-summary-component/lists"}