超リンクの下線をもっときれいに見せる:text-underline-offset
デフォルトでは下線が文字にかなり近く、こういう見た目を好まないデザイナーもいる。僕自身も、あまりきれいだとは思っていない。
Pixel Perfect が本当に重要なときだけそれを気にすべきであり、そうでなければ往々にして双方にとって損な結果になる。
Web開発において、従来の HEX や RGB の色表現は広く使われているものの、読みやすさや直感性に欠ける問題があり、P3 のような広色域では表現力にも限界がある。HSL(色相、彩度、明度)は、より直感的に色を定義できる方法であり、開発者が色を理解し調整しやすくしてくれる。HSL は色相・彩度・明度の3つの軸で色を表すため、特にデザインシステムにおいて、カラーパレットの明度変化をより自然に扱える。
本文では、なぜウェブデザインにおいて line-height を 1 に設定することが推奨されないのか、また ellipsis を使用する際に直面する言語の問題について探ります。
皆さんに、私が今後行いたい実験についてシェアしたいと思います。ソフトウェア開発やフロントエンドに入って、もうすぐ第一の十年を迎えます。フロントエンドが百花繚乱の戦国時代を経て、今後のフロントエンドの変化や気づきはとても有意義でした。ブログではすでに多くの記事を共有していますが、実はまだ書きたいことがたくさんあります。
本篇為 IT 2023 鐵人賽文章:與程式有關的遊戲三選 (1) – A=B
身為一位前端工程師,雖然我們不需要把全部的 HTML 標籤背得滾瓜爛熟,但是常見的 HTML 標籤與使用場景還是要有一定程度的了解,根據不同場景使用。 但是,使用語意化標籤的目的是什麼?我發現很多文章對於語意化標籤往往只停在表面,也就是討論某某標籤應該使用在哪裡,導致網頁上的標籤看似多彩繽紛,但使用者體驗卻沒有得到相對的提升。
電子報ウェブサイトの要件を検討し、最終的にウェブサイトの構築には Astro を選びました。この記事では他の静的ウェブページジェネレータとの比較および Astro を選んだ理由について検討します。
突然、面白いと思ったトピックを記録することに決めました。特に、視覚化できるものに関しては。余力があれば、毎日のトピックをメモに書き留めます。とにかく、私は Advent Of Code Day10 の問題がかなり面白いと思うので、一旦記録しておきます。
2017年に、HTML/CSSを使用して実現できるさまざまなレイアウトのテクニックについて共有された記事を読みました。初めて読んだ時、共感を覚え、当時知らなかったテクニックも学びましたので、皆さんにもおすすめです。JavaScriptはほとんどの問題を解決できますが、アクセシビリティの観点やパフォーマンス、バンドルサイズの観点から見ると、CSSで解決できる方が良いです。ただし、JSを使用しないことは完全に使用しないことを意味せず、両者にはいくつかの違いがあります。この記事では、再度上記の記事を読み直し、改善できると思われる点を指摘します。
CSSのレイアウトを行う際には、対応するCSSスタイルを使用して処理を行います。場合によってはJavaScriptを使用する必要がありますが、実際にはCSSには多くの疑似クラスが存在し、これらをうまく活用することでCSSを簡素化し、不要なJavaScriptの実装を減らすことができます。また、過去とは異なり、ごく少数のブラウザのみがサポートしていたということもなくなりました。
ブログをGatsbyからNext.jsに移行するプロセスと感想を記録しました。使用した技術や実装の詳細などが含まれています。
ただし、多くの人が「ああ、またフレームワークがあるのか」と感じるかもしれませんが、remixには確かに独自の特徴があります。ドキュメントを読んだり、最も明らかなものを追いかけたりするとわかるでしょう。
node.jsでは、ファイルの操作にはよくfsモジュールを使用します。ただし、高いスループットが必要な場合、IOに関連する操作は非常に注意が必要です。
現在、多くのウェブサイトでは、Web Vitalsの測定プロセスが導入されており、指標を定量化して改善すべき箇所を見つけることができます。しかし、あまり知られていないのは、Sentryが以前にもWeb Vitalsの統計機能を導入していたことです。この機能では、LCP、FP、CLSなど、Web Vitalsの各指標を統計することができ、開発者はバックエンドで関連するグラフを確認したり、平均値を表示することができます。非常に便利です。
UIの観点から見ると、フロントエンドとモバイル開発は似たような問題に直面することがあります。使用される言語や開発手法は異なるかもしれませんが、私たちは使いやすいユーザーインターフェースを作る必要があります。そのため、コンポーネントベースの開発、状態管理、データフロー、副作用の管理(APIまたはIOなど)など、私にとっては相互学習に適した領域です。
WebGLは、幅が1より大きい線をサポートしていません。Three.jsでも幅を調整できる線の実装はサポートされていません。そのため、独自の線の実装を開始しました。
ウェブページを閲覧する際、私たちはしばしばサブドメインを使用してサービスのコンテンツを区別します。ただし、ウェブサイトがサブドメインであるかどうか、または2つのウェブサイトがSameSiteであるかどうかを区別することは想像以上に簡単ではありません。
shikiは、コードの構文をハイライトするためのパッケージであり、他のパッケージ(highlightjs、prismjs)と比べて比較的新しく、あまり知られていません。主な理由は、サポートされている言語の数が多く、設定も簡単であり、組み込まれているテーマも多いため、prismjsを置き換えるのに便利です。
フロントエンドアプリケーションでは、よく他の値を組み合わせて計算された値を表示する必要があります。または、ある種の計算を行った後に画面に表示する必要があります。通常、このような処理は、useMemoを使用してコードを簡略化することができます。
本記事は、私の視点や考えを表現するものであり、同業者に対する批判の意図はありません。私は現在、フロントエンドの領域(ここではウェブ開発を指します)が徐々に成熟してきており、フロントエンドフレームワークはコンポーネントベースの中心思想とレスポンシブメカニズムを採用し、フレームワーク固有の文法や開発手法、哲学と組み合わせることで、ほとんどの使用シナリオに対応できると考えています。
Google Chrome 89では、Web Serial APIが導入され、ブラウザのAPIを介して外部デバイスと直接やり取りすることができます。これには、USBデバイスやシリアルインターフェースを持つBluetoothデバイスなどが含まれます。これにより、ブラウザはハードウェアと直接通信することができます。
この記事では、フォームタグがブラウザ上でどのように処理されるか、また JavaScript で FormData を使用してフォーム操作を簡略化する方法について説明します。
フォームはウェブページの一般的なアプリケーションで、プレーンテキストの転送だけでなく、ファイルのアップロードも可能です。しかし、フォームの振る舞いは他の伝達方法とは異なるため、疑念や誤解が生じることがあります。この記事では、仕様の詳細を理解し、フォームが最終的に何をするのか、フォームが他の転送方法とどのように異なるのかを理解し、最後に、フォームタグの背後でHTMLが何をするのかを説明します。
Svelte の核となるコンセプトから、Svelte はコンパイルプロセスからできるだけ多くの情報を取得し、ダイナミックのオーバーヘッドを削減したいと考えています。前回の記事では、Svelte のコンパイルからコード生成までの仕組みを説明しました。今日は、Svelte が生成したコードがどのように機能するかを見てみましょう。
最終的なコードを生成するには、Svelte はコンポーネントを一度コンパイルして必要な情報を取得する必要があります。Svelte からビルドコードまでのコンパイルプロセスはいくつかの段階を経ますが、この記事ではそれらを 1 つずつ説明します。
スベルテの注目は年々高まった。この記事では、2022年にSvelteについて学ぶべきいくつかの理由を取り上げ、Svelteを使用する際の欠点についても説明します。
この連載記事では、読者にSvelteのコンパイルメカニズムとコード生成についてより深く理解してもらうことを目的として、Svelteの原則の実装について探ります。Svelte のコンパイルプロセスにはコードの解析が含まれるため、この記事では抽象構文ツリーとは何かを説明し、さらに抽象構文ツリーの役割と重要性について説明します。
Turbolinks は Ruby on Rails で通常使用される JavaScript パッケージです (ライブラリとしてのみ使用できます)。主に HTML を取得して、リクエストと CSS を再送信するコストを回避します。実際、「JavaScriptを使用する必要がない」というのは完全に正しいわけではなく、JavaScriptはまだありますが、ライブラリで自動的に行われるため、JavaScriptを書かなくても開発できます。
linariaは、ランタイムなしでcss-in-jsを重視したライブラリです。styled-components に似た構文を使用できますが、コンパイル時に CSS を生成するため、スタイルを動的に変更する際のオーバーヘッドが軽減されます。
ブラウザが Web ページをクロールすると、クローラーはページの HTML コンテンツをクロールしてコンテンツを生成し、それをデータベースにキャッシュして定期的に更新します。つまり、SSR が実装されていない場合、html ファイル自体は空白になり、JavaScript が解析されて実行されるまで、実際のページは表示されません。
今回、このトピックを実装したいと思ったのは、ニュースやデータと比較的整合性のある関係を見て、スベルテ自体も昇進できると言って、彼は構想しながら実装されたからです。
Vue の作成者ユーユー・クリークは最近、RFC を提案しました。これは ref 宣言の構文に関するもので、JavaScript ラベルステートメントでさらに簡略化できます。この構文はSvelteに似ています。ここに自分の考えを記録してください。
Svelteは私のお気に入りのフロントエンドフレームワークの1つで、シンプルな構文と柔軟性、作者の哲学、そしてさまざまなアニメーションやカットシーンの使用がとても好きになりました。Svelteに対する彼らの見解について以前にいくつかの記事を書いたことがあります。Svelte Summitは2020年10月18日に開催され、パンデミックがオンラインで生放送され、合計7時間、17回のスピーチが行われました。ここでは、興味深いスピーチと私自身の経験を記録します。
iOS は一部のバージョンのマウスダウンでは正しく動作しませんが、マウスダウンは他のデバイス(Android など)では引き続き正しく機能します。
一般に、通貨を表示する必要があります。元の数値を人に優しい形式に変換することです。フロントエンドでは、intl.NumberFormatや正規表現など、いくつかの方法で実現できます。
Samesiteポリシーのリリースについて言えば、クッキーとCORSについて改めて考えます。クッキーは本当に滴り落ちるの?いくつかのシナリオを見てみましょう。
React 17 は大きな更新や新機能なしでリリースされましたが、useEffect のクリーンアップのタイミングは静かに変わりました。この記事では、各更新について1つずつ説明するのではなく、記事で把握しておくべき点をメモします。
ブラウザでできることが増えるにつれて、フロントエンドの範囲はますます広くなります。フロントエンドという用語だけで、複数のブランチが存在する可能性があります。
新しいライブラリに取り組んでいるときは、その人のことも調べます(すべてではないか、npmのインストールには一生かかるでしょう)。テクノロジーの創造者は人間、図書館の作成者は人間、フレームワークの作成者は人間、そして誰もが生身の人間だからです。
第 1 回では、JSON パーサーの記述方法と文字列解析機能の実装方法について説明しました。次に、他の機能を追加します。(実際、基本を知っていれば、残りの関数実装は以下のようになります)
今日は JSON の解析から始めて、JSON パーサーをゼロから構築する方法を説明します。JSON のアーキテクチャは単純なので、この方法をお勧めします。
svelteでスムーズスクロールを実装できて良かった直後、実際には1行のCSSで実現できることに気付きました。
今日はSvelteのソースコードを見に走って,どんな簡単な問題でも見ながらアーキテクチャに慣れていれば練習に活かせる。
フィーリングロールアップ自体の仕組みはそれほど完全ではないwebpack
しかし、Svelteはまたいくつかの問題に遭遇する運命にあります。主なことは、Svelteはランタイムであまりにも多くのことをするのを助けることができないということです。
Svelteを初めて見たとき、「まあ... まだ新しいフロントエンドフレームワークなのか?」と思いました。、そんなムードを抱えてもあまり気になりませんでした。ブログ投稿が増え、多くのウェブサイトが後で使用されているのを見て、好奇心をそそり始めました。
Chrome 80 以降では、クッキー内の同一サイトはデフォルトで lax に設定されています。まず、同じサイトの定義とそれが何に役立つのか、そしてクッキーについての考察、全体について私が考えていることから始めます。
フロントエンドの開発記録にいくつかのことを載せることができると期待していましたが、まだ始められていませんでした。アイアンマンレースを利用して、すべてが一気に整理されました。シリーズはいくつかのパートに分かれており、今後もそれについて書き続ける機会があります。JavaScriptの基本 ECMAScriptを使ったJavaScriptの紹介...
react-transition-group v1 から v4 へのアップグレードはより重要です。アップグレード後、CSSTransitionGroup コンポーネントは削除され、Leave は終了になります TransitionName は ClassEnterTimeout...
この記事では、react-hooks用のAPIを紹介する代わりに、設計の観点から設計の背後にある理由を探ろうとしています。次のセクションに分かれています。関数コンポーネントとクラスコンポーネントの違い高次コンポーネントのコンポーネントで同様のロジックを再利用する方法...
この記事は、「ピンから下までスクロールする要素を CSS だけで実装する」と説明し、JavaScript の使用方法を説明します。ページが表示される頻度が高くなるほど、新しいコンテンツが追加されるたびにスクロールが一番下に移動するようになりました。ツイッチのように...
ある日、ページを開発しているときに、ヘッダーフィールドが正しいことを確認するために、開発ツールを開いて、リクエストにさらに疑わしいヘッダーがいくつか表示されます:network。何か怪しいことに気づきましたか?Sec-Fetchに3つある方法を詳しく見てみましょう...
多くのウェブページには、実行すべきさまざまなスクリプトがあります。もちろん、優先順位はあります。たとえば、UI のレンダリング、関連するインタラクティブイベントの登録、データ取得のための API の呼び出しなどは、比較的重要でないタスク(分析スクリプト、遅延読み込み、初期化の比較など)など、優先度の高いタスクです。アイドル状態のカウント方法...
フロントエンドでは、主に XHR と Fetch の 2 つの方法でリクエストを送信できます。XHRは、ええと...それにはずっと前にAPIがありました。しかし、セットアップが面倒なので、Jquery getJSON、axios、RxJS AjaxObservableなどの高レベルのAPIに包まれていることがよくあります...
フロントエンドの CORS と Cookie は非常に重要な問題ですが、フロントエンドとバックエンドのドメインは同じことが多く、これらの問題に対処することはほとんどないため、ほとんどの場合は開発段階にあります。または、バックエンドをアクセス制御-許可-オリジンになるように要求してください...
Array.sort 分析この記事では、Javascript のネイティブソートで注意すべき点については説明していません。たとえば、デフォルトのソートメソッドは値を文字列に変換し、文字コードに従ってソートするので、上記の結果が表示されます。今日は、Javascript ソートの背後にある実装について見ていきます。
テーブルは見事なビジュアルとして使われていないことを認識してください。最近ではバックグラウンドでテーブルを頻繁に使用する必要があり、ユーザーにとって適切なテーブルをデザインする方法が課題です。特にデータペンが多く、フィールドが多い場合、ユーザーは追加の要素に引き付けられやすくなります。実際には、テーブルにデータをレンダリングするために...
react がついにv16をリリースしました。実際、公式ブログの紹介はかなり完成しています(そして目を楽しませてくれます)。この記事は注記と統合の役割を果たし、詳細の一部を簡単にまとめています。ComponentDidPatch(エラー、情報)react16の最も明るい部分に ErrorBoundary 機能を追加して、ライフサイクルを確実に...
最後に、最近の面接プロセスを整理しましょう。私たちが目にしたことをいくつかまとめてください。通常、企業インタビューでは、主にアルゴリズムやプロトタイプチェーンの解釈などに関するJavaScriptの知識をテストするだけで、DOMやイベントの操作を調べることはほとんどありません。クラスやIDの優先順位などの基本的な質問があっても、CSSはほとんどありません。面接試験の HTML はありません...
ramdaはとても便利なライブラリです。ロダッシュやアンダースコアについて聞いたことがあるなら、ramda は関数型プログラミングのロダッシュと考えることができます。彼らのAPIには多くの類似点がありますが、ramdaにはFP関数、任意のAPIがあります...
今日はアイアンマンレースの最終日で、収穫の終わりの最後の部分があまり良くない気がして、時間の関係で完全には導入されていない部分も多い気がします。
フロントエンドページでは、同じ高さを必要とするレイアウトに出くわすことがよくあります。これを行う最も直感的な方法は、コンテナーのすべての要素をfloatまたはinline-blockに設定することです。floatとinline-block floatタイプセッティングを使用する場合、親要素のコンテナ(clearfix)をストレッチするだけでなく、子要素にもマージンを設定します...
自分のcss変数の考え方についての記事を書く前に,もともとこの属性にはあまり期待していなかった,SASS変数に慣れている自分もこのCSS変数みたいな感じがするけど気まずいシステムみたいな感じ,でもそう思っている人なら,この記事を参考にしてください
約1年前、SASSからPostCSSまで、PostCSSはフロントエンドのエコシステムに飛び込み始めました。いわゆるプリプロセッサ機能に過ぎず、独自のプラグインを高度にカスタマイズし、cssnext関数を最初に使用しましたが、さまざまな構築ツール(gulp、webpack...
セマンティクス、クラス命名、イベント伝搬