¡ÖGoogle Chrome 149¡×°ÂÄêÈÇ¥ê¥ê¡¼¥¹¡¢CSS¤Îgap¤Î¥¹¥¿¥¤¥ë¤ò»ØÄê¤Ç¤¤ë¡ÖCSS gap decorations¡×¤ËÂбþ

¥¦¥§¥Ö¥Ö¥é¥¦¥¶¡ÖGoogle Chrome¡×¤ÎºÇ¿·°ÂÄêÈǤǤ¢¤ë¥Ð¡¼¥¸¥ç¥ó149¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤Þ¤·¤¿¡£¥°¥ê¥Ã¥É¤ä¥Õ¥ì¥Ã¥¯¥¹¥Ü¥Ã¥¯¥¹¤Ê¤É¤Î¥ì¥¤¥¢¥¦¥È¤Î¡Ögap¡×¤Ë¤±¤¤Àþ¤äÁõ¾þ¤òÄɲäǤ¤ë¡ÖCSS gap decorations¡×¤ËÂбþ¤·¤¿¤Û¤«¡¢WebSocketÀÜÂ³Ãæ¤Î¥Ú¡¼¥¸¤ò¥Ð¥Ã¥¯¥Õ¥©¥ï¡¼¥É¥¥ã¥Ã¥·¥å(bfcache)¤ËÊݸ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤Ê¤É¤ÎÊѹ¹¤¬²Ã¤¨¤é¤ì¤Æ¤¤¤Þ¤¹¡£
https://developer.chrome.com/blog/new-in-chrome-149
¢¡CSS¤Î¡Ögap¡×¤Ë¤±¤¤Àþ¤òÉÁ²è¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë
Chrome 149¤Ç¤Ï¡¢CSS¤Î¡ÖCSS gap decorations¡×¤¬Æ³Æþ¤µ¤ì¤Þ¤·¤¿¡£¤³¤ì¤ÏCSS Grid¤äFlexbox¡¢¥Þ¥ë¥Á¥«¥é¥à¥ì¥¤¥¢¥¦¥È¤Ê¤É¤Ç»È¤ï¤ì¤ë¡Ögap¡×¤Ë¤±¤¤Àþ¤äÁõ¾þ¤òÄɲäǤ¤ëµ¡Ç½¤Ç¤¹¡£
½¾Íè¡¢¥°¥ê¥Ã¥É¤ä¥Õ¥ì¥Ã¥¯¥¹¥Ü¥Ã¥¯¥¹¤Î¥¢¥¤¥Æ¥à´Ö¤ËÀþ¤òÆþ¤ì¤ë¤Ë¤Ï³ÆÍ×ÁǤËborder¤ò»ØÄꤷ¤¿¤ê¡¢µ¿»÷Í×ÁǤòÇÛÃÖ¤·¤¿¤ê¡¢ÇطʲèÁü¤äÊ£»¨¤ÊCSS¤Çµ¿»÷Ū¤ËÀþ¤òɽ¸½¤·¤¿¤ê¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤·¤¿¡£Chrome 149°Ê¹ß¤Ï¡Öcolumn-rule¡×¤ä¡Örow-rule¡×¤ò»È¤¦¤³¤È¤Ç¡¢¥ì¥¤¥¢¥¦¥È¤Î·ä´Ö¤½¤Î¤â¤Î¤ËÁõ¾þ¤ò²Ã¤¨¤é¤ì¤Þ¤¹¡£
Î㤨¤Ð¡¢Flexbox¤Îgap¤ËÀþ¤òÆþ¤ì¤ë¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ½Ò¤Ç¤¤Þ¤¹¡£°Ê²¼¤Ç¤Ï2pxÉý¡¢¡Ö#d4d0c8¡×¿§¤ÎÅÀÀþ¤È¼ÂÀþ¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£

CSS gap decorations¤ËÂбþ¤·¤¿¥Ö¥é¥¦¥¶¤Ç¸«¤ë¤È°Ê²¼¤ÎÄ̤ꡣºÇ½é¤Îgap¤ËÅÀÀþ¡¢2¤ÄÌܤÎgap¤Ë¼ÂÀþ¤Ç2pxÉý¡¢¡Ö#d4d0c8¡×¿§¤ÎÀþ¤¬°ú¤«¤ì¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£

¤Ê¤ª¡¢ÈóÂбþ¤Î¥Ö¥é¥¦¥¶¤Ç¤Ï°Ê²¼¤ÎÄ̤êñ½ã¤ËÀßÄ̵꤬»ë¤µ¤ì¤ë¤È¤Î¤³¤È¡£

¤Þ¤¿¡¢¡Öcolumn-rule-inset¡×¤ä¡Örow-rule-inset¡×¤ò»È¤Ã¤ÆÀþ¤Îü¤òÆâ¦¤Ë½Ì¤á¤¿¤ê¡¢¡Öcolumn-rule-visibility-items¡×¤ä¡Örow-rule-visibility-items¡×¤ò»È¤Ã¤ÆÎÙÀܤ¹¤ë¥¢¥¤¥Æ¥à´Ö¤Ë¤À¤±Àþ¤òɽ¼¨¤·¤¿¤ê¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£Àþ¤ÎÉý¡¢¿§¡¢inset¤Ï¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Ë¤âÂбþ¤·¤Æ¤¤¤ë¤¿¤á¡¢¥Û¥Ð¡¼»þ¤ËÁõ¾þ¤òÊѲ½¤µ¤»¤ë¤È¤¤¤Ã¤¿É½¸½¤â²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¢¡WebSocketÀÜÂ³Ãæ¤Î¥Ú¡¼¥¸¤âbfcache¤ËÊݸ²Äǽ¤Ë
Chrome 149¤Ç¤Ï¡¢¥¢¥¯¥Æ¥£¥Ö¤ÊWebSocketÀܳ¤¬¤¢¤ë¥Ú¡¼¥¸¤Ç¤â¥Ð¥Ã¥¯¥Õ¥©¥ï¡¼¥É¥¥ã¥Ã¥·¥å¡¢Ä̾ΡÖbfcache¡×¤ËÊݸ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
bfcache¤Ï¥æ¡¼¥¶¡¼¤¬¡ÖÌá¤ë¡×¡Ö¿Ê¤à¡×Áàºî¤ò¤·¤¿ºÝ¤Ë¥Ú¡¼¥¸¤ò¥á¥â¥ê¤«¤é¨ºÂ¤ËÉü¸µ¤¹¤ë¤¿¤á¤Î»ÅÁȤߡ£¤³¤ì¤Þ¤Ç¤ÏWebSocketÀܳ¤¬¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ú¡¼¥¸¤Ïbfcache¤ÎÂоݳ°¤È¤Ê¤ê¡¢¥æ¡¼¥¶¡¼¤¬¥Ú¡¼¥¸¤«¤éÎ¥¤ì¤ë¤ÈÇË´þ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£
Chrome 149¤Ç¤Ï¡¢¥Ú¡¼¥¸¤¬bfcache¤ËÆþ¤ë¥¿¥¤¥ß¥ó¥°¤ÇWebSocketÀܳ¤òÀè¤ËÊĤ¸¤ë¤³¤È¤Ç¡¢¥Ú¡¼¥¸¼«ÂΤò¥á¥â¥êÆâ¤ËÊݸ¤·¡¢Ìá¤ë¡¦¿Ê¤àÁàºî»þ¤Ë¹â®¤ËÉü¸µ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¢¡Intl.Locale¤Ç¸À¸ì¥Ð¥ê¥¢¥ó¥È¤ò¼èÆÀ²Äǽ¤Ë
JavaScript¤Î¡ÖIntl.Locale¡×¤Ë¡Övariants¡×¥×¥í¥Ñ¥Æ¥£¤¬Äɲ䵤ì¤Þ¤·¤¿¡£¤³¤ì¤Ë¤è¤ê¡¢Unicode¥í¥±¡¼¥ë¼±Ê̻Ҥ˴ޤޤì¤ë¸À¸ì¥Ð¥ê¥¢¥ó¥È¤ò¼èÆÀ¡¦ÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤Ç¥í¥±¡¼¥ë¡Ösl-rozaj-biske¡×¤Ë´Þ¤Þ¤ì¤ë¥Ð¥ê¥¢¥ó¥È¡Örozaj-biske¡×¤ò¼èÆÀ¤Ç¤¤Þ¤¹¡£
const locale = new Intl.Locale("sl-rozaj-biske");
console.log(locale.variants); // "rozaj-biske"
¤³¤Îµ¡Ç½¤ÏFirefox¤äSafari¤Ç¤Ï´û¤Ë¼ÂÁõºÑ¤ß¡£Chrome 149¤ÇChrome¤Ë¤âÄɲ䵤졢¼çÍץ֥饦¥¶¤ÇÂбþ¤¬½Ð¤½¤í¤¤¤Þ¤·¤¿¡£
¢¡¥Æ¥¥¹¥È¤Î¾Êάɽ¼¨¤¬Áàºî»þ¤Ë°ì»þ²ò½ü¤µ¤ì¤ë¤è¤¦¤Ë
CSS¤Ç¡Ötext-overflow: ellipsis¡×¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¥Æ¥¥¹¥È¤ËÂФ·¤Æ¡¢¥æ¡¼¥¶¡¼¤¬ÊÔ½¸¤ä¥«¡¼¥½¥ë°Üư¤Ê¤É¤ÎÁàºî¤ò¹Ô¤Ã¤¿¾ì¹ç¡¢°ì»þŪ¤Ë¾Êάµ¹æÉ½¼¨¤«¤é¥¯¥ê¥Ã¥×ɽ¼¨¤ØÀÚ¤êÂØ¤ï¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¤³¤ì¤Ë¤è¤ê¡¢¾Êά¤µ¤ì¤Æ±£¤ì¤Æ¤¤¤¿¥Æ¥¥¹¥È¤ÎËöÈøÉôʬ¤ò¡¢¥æ¡¼¥¶¡¼¤¬³Îǧ¡¦Áàºî¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£¤³¤ÎÊѹ¹¤ÏÊÔ½¸²Äǽ¤ÊÍ×ÁǤÀ¤±¤Ç¤Ê¤¯¡¢ÊÔ½¸ÉԲĤÎÍ×ÁǤˤâŬÍѤµ¤ì¤Þ¤¹¡£
¢¡shape-outside¤Ç»ØÄê¤Ç¤¤ë¿Þ·Á¤¬³È½¼
CSS¤Î¡Öshape-outside¡×¥×¥í¥Ñ¥Æ¥£¤Ç¡¢¡Öpath()¡×¡Öshape()¡×¡Örect()¡×¡Öxywh()¡×¤È¤¤¤Ã¤¿¿Þ·Á´Ø¿ô¤òÍøÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
shape-outside¤Ï¡¢²èÁü¤ä¿Þ·Á¤Î¼þ°Ï¤Ë¥Æ¥¥¹¥È¤ò²ó¤ê¹þ¤Þ¤»¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Ñ¥Æ¥£¤Ç¤¹¡£Chrome 149¤Ç¤Ï¡¢¤è¤ê½ÀÆð¤Ê·Á¾õ¤ò»ØÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Û¤«¡¢¿Þ·Á¤Î¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Ë¤âÂбþ¤·¤ä¤¹¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¢¡¤½¤Î¾¤Î¹¹¿·ÅÀ
¡¦tableÍ×ÁǤÎUA¥¹¥¿¥¤¥ë¥·¡¼¥È¤«¤éHTML»ÅÍͤˤϸºß¤·¤Ê¤¤¡Öborder-color: gray¡×»ØÄ꤬ºï½ü¤µ¤ì¡¢border¤Î¿§¤¬currentColor¤ò´ð½à¤Ë·è¤Þ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¡¦¡Ö:hover¡×¡Ö:active¡×¡Ö:focus-within¡×¤Î¿ÆÍ×ÁǤؤΥޥåÁ¥ó¥°¤¬¡¢top layerÍ×ÁǤ泦¤Ç»ß¤Þ¤ë¤è¤¦¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£
¡¦CSS¥¡¼¥ï¡¼¥É¡ÖAccentColor¡×¡ÖAccentColorText¡×¤ª¤è¤Ó¡Öaccent-color: auto¡×¤«¤é¼èÆÀ¤Ç¤¤ë¥·¥¹¥Æ¥à¥¢¥¯¥»¥ó¥È¥«¥é¡¼¤ÎÈϰϤ¬¡¢¥¦¥§¥Ö¥¢¥×¥ê¤È½é´ü¥×¥í¥Õ¥¡¥¤¥ë¥³¥ó¥Æ¥¥¹¥ÈÆâ¤ËÀ©¸Â¤µ¤ì¤Þ¤·¤¿¡£
¡¦¡Öimage-rendering: crisp-edges¡×¤¬¥µ¥Ý¡¼¥È¤µ¤ì¡¢²èÁü¤ò³ÈÂ礷¤¿ºÝ¤ËÎØ³Ô¤òÊݤä¿É½¼¨¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¡¦SVG¤Î¡ÖpathLength¡×°À¤ËÂбþ¤¹¤ëCSS¥×¥í¥Ñ¥Æ¥£¡Öpath-length¡×¤¬Äɲ䵤ì¤Þ¤·¤¿¡£
¡¦Payment Request API¤Ç¡¢»Ùʧ¤¤¥Ï¥ó¥É¥é¡¼¤¬¡Ö¥æ¡¼¥¶¡¼¤Ë¤è¤ë¥¥ã¥ó¥»¥ë¡×¤È¡Ö»Ùʧ¤¤¥¢¥×¥êÆâÉô¥¨¥é¡¼¡×¤ò¶èÊ̤·¤ÆÊÖ¤»¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¡¦Windows¤Î¥¿¥Ã¥Á¥¡¼¥Ü¡¼¥É¤Ç¡¢ÆþÎÏÍó¤Ë¡Öautocorrect="off"¡×¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¼«Æ°½¤Àµ¤òÍÞÀ©¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¡¦Async Clipboard API¤Ç¡¢¼ÂºÝ¤Î¥¯¥ê¥Ã¥×¥Ü¡¼¥É¥Ç¡¼¥¿¼èÆÀ¤ò¡ÖgetType()¡×¸Æ¤Ó½Ð¤·»þ¤Þ¤ÇÃ٤餻¤ë¡ÖSelective Clipboard Format Read¡×¤¬Æ³Æþ¤µ¤ì¤Þ¤·¤¿¡£
¢¡¥ª¥ê¥¸¥ó¥È¥é¥¤¥¢¥ë
Chrome 149¤Ç¤Ï¡¢°Ê²¼¤Î¿·¤·¤¤¥ª¥ê¥¸¥ó¥È¥é¥¤¥¢¥ë¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¦Gamepad event-driven input API
¡¦Permissions Policy: focus-without-user-activation
¡¦WebAssembly custom descriptors
¤Ê¤ª¡¢¼¡´ü°ÂÄêÈǤΡÖGoogle Chrome 150¡×¤Ï¸½ÃÏ»þ´Ö¤Î2026ǯ6·î30Æü(²Ð)¤Ë¥ê¥ê¡¼¥¹Í½Äê¤Ç¤¹¡£
