- AWS S3: how to download file instead of displaying in-browser
- How to set Amazon S3 files download names? | Jun711 blog
- 자습서: CloudFront 함수를 사용하여 간단한 함수 생성 - Amazon CloudFront
- 최종 사용자를 새 URL로 리디렉션 - Amazon CloudFront
- Amazon CloudFront에서 특정 파일 캐시 방지
- An Introduction To AWS Cloud Development Kit (CDK) — Smashing Magazine
- Amazon CloudFront KeyValueStore - Amazon CloudFront — URL rewrites or redirects · A/B testing and feature flags · Access authorization
Under-Engineered Select Menus | Adrian Roselli
font,letter-spacing,word-spacing상속appearance화살표 수정- 상태(focus, required, invalid)에 따른 스타일 추가
Building a multi-select component
다중 선택 UI를 구현하기위해서 checkbox, select 두가지 방법으로 작업하는 방식을 소개하고 있다. 그외 선택된 상태값을 얻기위한 counter() 함수, 모바일 체크를 위한 미디어쿼리도 알려주고 있다.
aside {
counter-reset: filters;
& :checked {
counter-increment: filters;
}
&::after {
content: counter(filters);
}
}
@media (pointer: coarse) {
//
}
디자인 된 <select />에 placeholder 개념이 있어서 어떻게 하면 좋을지 찾아봤다. 간략하게 설명하자면 선택이 불가능하게 disabled 추가하고 hidden으로 숨김 마지막으로 selected로 디폴트값을 처리하면 완성.
function Select({ placeholder, children }) {
return (
<select>
<option value="" disabled hidden selected>
{placeholder}
</option>
{children}
</select>
)
}
- Extensions - Chrome Developers1
- Migrating to Manifest V3 - Chrome Developers2
- Migrating from background pages to service workers - Chrome Developers3
- WebExtensions - Mozilla | MDN4
- Helpful Tips for Starting a Next.js Chrome Extension | CSS-Tricks - CSS-Tricks5
- chrome.runtime
- WXT
- Work with the Cookies API - Mozilla | MDN
- cookies - Mozilla | MDN
- Internationalization - Mozilla | MDN
- Internationalize your extension - Chrome Developers
Footnotes
TIL — The power of JSON.stringify replacer parameter | pawelgrzybek.com
JSON.stringify(dude, (key, value) =>
value instanceof Set ? [...value] : value
);
JSON.stringify(dude, null, "🍆");
function getTiltedHeight(angle) {
const a = 100;
const A = 90 - angle;
const c = a / Math.sin(Math.PI * A / 180);
const b = Math.sqrt(Math.pow(c, 2) - Math.pow(a, 2));
return `${Math.abs(b)}%`;
}
- Your Image Is Probably Not Decorative — Smashing Magazine1
- JPG vs JPEG: Understanding the Most Common Image Format
- Using Modern Image Formats: AVIF And WebP — Smashing Magazine2
- Building an effective Image Component3
- Using Performant Next-Gen Images in CSS with image-set | CSS-Tricks4
- A Guide to the Responsive Images Syntax in HTML | CSS-Tricks5
- Frequently Asked Questions | WebP | Google Developers6
- Picture perfect images with the modern <img> element - Stack Overflow
- Learn Images | web.dev
- GitHub - JonasKruckenberg/imagetools: Load and transform images using a toolbox of custom import directives!
- Cloudflare Image Optimization · Cloudflare Image Optimization docs
Footnotes
- content-visibility: the new CSS property that boosts your rendering performance1
- More on content-visibility | CSS-Tricks2
- When is it “Right” to Reach for contain and will-change in CSS? - CSS-Tricks3
- contain - CSS: Cascading Style Sheets | MDN
- How I made Google’s data grid scroll 10x faster with one line of CSS | by Johan Isaksson | Oct, 2021 | Medium
Footnotes
- Animating with Clip-Path | CSS-Tricks
- Ghost Buttons with Directional Awareness in CSS | CSS-Tricks1
- Chameleonic Header | CodyHouse
- Using “box shadows” and clip-path together | CSS-Tricks2
mask — 현재 개체를 배경으로 합성하기 위한 알파 마스크를 정의
- Masking GIFs with other GIFs | CSS-Tricks
- Going From Solid to Knockout Text on Scroll | CSS-Tricks
- How to Create an Animated Chart of Nested Squares Using Masks | CSS-Tricks