Written Sunday 15th of December 2024
Project contact: Johan Ronsse [email protected]
My goal is to launch a new Obra Studio website in January (latest launch date: January 20th)
Written Sunday 15th of December 2024
Project contact: Johan Ronsse [email protected]
My goal is to launch a new Obra Studio website in January (latest launch date: January 20th)
@mixin dark-mode { | |
:global(html[data-theme='system']) { | |
@media (prefers-color-scheme: dark) { | |
@content; | |
} | |
} | |
:global(html[data-theme='dark']) { | |
@content; |
{ | |
"apiVersion": "2023-02-28-preview", | |
"modelId": "prebuilt-layout", | |
"stringIndexType": "textElements", | |
"content": "You must be the change you wish to see in the world!\nEverything has its beauty, but\nnot everyone sees it!", | |
"pages": [ | |
{ | |
"pageNumber": 1, | |
"angle": -1.1024999618530273, | |
"width": 1000, |
$html-font-size: 16px; | |
$enable-rem: true; | |
@function stripUnit($value) { | |
@return $value / ($value * 0 + 1); | |
} | |
@function rem($value) { | |
@if $enable-rem { | |
@return #{$value/stripUnit($html-font-size)}rem; |
const ConnectionCardList = ({ data }) => js | |
const listItems = connections.map((item) => ( | |
<ConnectionCard title={item.name} desc={item.receiver} /> | |
)); | |
return <Flex flexWrap="wrap">{listItems}</Flex>; | |
}; |
This document to help drive the discussion about the abstraction level of code and reusable mixins forward.
Basically the discussion is twofold:
Imagine a card component, documented in the styleguide:
import pMemoize from 'p-memoize' | |
import { LanguageKey, TextNodePlainObject } from './types.js' | |
export const translateAsync = pMemoize(async function ( | |
{ characters, id }: TextNodePlainObject, | |
languageKey: LanguageKey | |
) { | |
// Old Google API |
<template> | |
<nav role="navigation" aria-label="Pagination"> | |
<ul class="c-pagination"> | |
<li class="c-pagination__element"> | |
<Button icon="arrow-left-s" layout="icon-only" :theme='internalPage === 1 ? "inactive" : "secondary"' | |
@click="decreasePageNumber">Previous page | |
</Button> | |
</li> | |
<li class="c-pagination__element" v-for="(page, index) in pages" :key="page === MORE ? -index : page"> |
{ | |
"add": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 4C12.5523 4 13 4.44772 13 5V11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H13V19C13 19.5523 12.5523 20 12 20C11.4477 20 11 19.5523 11 19V13H5C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11H11V5C11 4.44772 11.4477 4 12 4Z\" fill=\"#3F545B\"/></svg>", | |
"archive": "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 5C2 3.89543 2.89543 3 4 3H20C21.1046 3 22 3.89543 22 5V7C22 7.74708 21.5904 8.39848 20.9835 8.74188C20.9944 8.82638 21 8.91253 21 9V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V9C3 8.91253 3.00561 8.82638 3.0165 8.74188C2.40961 8.39848 2 7.74707 2 7V5ZM20 7V5H4V7H20ZM5 9V19H19V9H5ZM8 12C8 11.4477 8.44772 11 9 11H15C15.5523 11 16 11.4477 16 12C16 12.5523 15.5523 13 15 13H9C8.44772 13 8 12.5523 8 12Z\" fill=\"#3F545B\"/></svg>", | |
"arrow-down": "<svg width=\"24\" height=\"24\" |
import Component from '@glimmer/component'; | |
import { action } from '@ember/object'; | |
import { tracked } from '@glimmer/tracking'; | |
import { guidFor } from '@ember/object/internals'; | |
export default class Accordion extends Component { | |
@tracked isActive = false | |
accordionId = 'accordion-' + guidFor(this); |