CARVIEW |
Select Language
HTTP/2 200
date: Fri, 18 Jul 2025 03:39:01 GMT
content-type: text/html; charset=utf-8
cache-control: max-age=0, private, must-revalidate
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
link: ; rel=preload; as=fetch; crossorigin=use-credentials
referrer-policy: no-referrer-when-downgrade
server-timing: issue_layout-fragment;desc="issue_layout fragment";dur=172.890634,issue_conversation_content-fragment;desc="issue_conversation_content fragment";dur=624.496007,issue_conversation_sidebar-fragment;desc="issue_conversation_sidebar fragment";dur=44.880641,nginx;desc="NGINX";dur=0.623173,glb;desc="GLB";dur=94.419127
strict-transport-security: max-age=31536000; includeSubdomains; preload
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, Accept,Accept-Encoding, Accept, X-Requested-With
x-content-type-options: nosniff
x-frame-options: deny
x-voltron-version: fd8fbbc
x-xss-protection: 0
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=e4o9TcLWpw7bjqretoSSykb7P4i%2BxZpvLKMYrVt7jb22MbgTGEeLGn8vXA1LZ%2BbTgjpct74cvs78v%2Ft0OUY6mA2BxQWVJo3JZTcQSgl%2Bel26HpUo8S%2B%2BRCvw%2FGuwjqw8rNDdubIar2bKjaETS8VwXA%2FBmL3rIaheSvKAEpPUC2uJWJsB4XcSGPyiX5%2B8O%2BPooaCmDMkhwlm%2BmymJmH3ZMfN1op%2BACNOwNr7EgSBFtquk4HiYHzuvqwAwNWXmmsLwFZnWpLUMgfK6yuLEoKdRMw%3D%3D--SX7TjXG8VeJ6M49Q--rc9XmzgriOwXp%2FFsAhA6oA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1115858702.1752809940; Path=/; Domain=github.com; Expires=Sat, 18 Jul 2026 03:39:00 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 18 Jul 2026 03:39:00 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: B8CC:377326:6C905F:896C64:6879C1D4
[css-text-decor-4] Rethinking text-underline-offset · Issue #3118 · w3c/csswg-drafts · GitHub
No one assignedNo typeNo projectsNo milestoneNone yetNo branches or pull requests
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 728
Closed
Description
There are a couple problems with the current formulation of text-underline-offset
.
text-underline-offset
is meant to be a delta added to wherever the underline happened to be placed, but the location where the underline is placed varies between different browsers and operating systems. The use case this is supposed to solve is "my underline is just a little too high, let's nudge it down a little bit" but because different browsers choose the locations differently, the current formulation doesn't satisfy this use case- What does it mean if both
text-underline-offset: from-font
andtext-underline-position: under
are applied to the same element? Such a formulation seems fairly meaningless.
In order to fix these problems, I propose the following changes:
- Add another value to
text-underline-position
named something likestandard
. Come up with some standard formula for the placement of the underline that all browsers can agree on, and state it in the spec. Importantly, don't make this the initial value - it's just an option that authors can specify if they want consistent underlines. I'm not particular on what specific formula is used, but I'll proposefont-size / 16
to get the conversation started. (This formula scales linearly with font size, and default-sized text gets a 1px underline gap, which is compatible with most (all?) browsers today) - Move the
from-font
value fromtext-underline-offset
totext-underline-position
. - Update the grammar of
text-underline-position
such that you can't specify more than one of [auto, standard, under, from-font]. - Now,
text-underline-offset
really can be just a delta, so there's no need for anauto
value. Remove theauto
value and have it just take a<length>
. - While we're at it,
text-underline-offset
should be able to take a percentage, which gets multiplied by the font size. This would be a good way to make the underline scale as the font size grows.
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
Issue actions
You can’t perform that action at this time.