Skip to content

Instantly share code, notes, and snippets.

@vii33
Last active November 16, 2024 00:46
Show Gist options
  • Select an option

  • Save vii33/f2c3a85b64023cefa9df6420730c7531 to your computer and use it in GitHub Desktop.

Select an option

Save vii33/f2c3a85b64023cefa9df6420730c7531 to your computer and use it in GitHub Desktop.
Changes the readable line length in Obsidian Notes. Tested in Obsidian v1.0.0

Changes the line length in Obsidian Notes. Tested with Obsidian v1.0.0

See also: https://forum.obsidian.md/t/adjustable-readable-line-length/7564/6

Note: For this to work the "readable line length" property in settings has to be enabled in settings (as expected).

700px is the default width, just adjust the number below.

Pixels px (or percentage %) are possible units that enable a width independent from the number of characters (good when adjusting the zoom level or font size). For fixed amount of characters use rem, e.g. 70rem

/* Changes the readable line length in Obsidian Notes. Tested in Obsidian v1.0.0
See https://gist.github.com/vii33/f2c3a85b64023cefa9df6420730c7531/f4ea845b240e94c9fcd47d456340f78208dab38f
*/
body {
--file-line-width: 750px;
}
@mgregier

Copy link
Copy Markdown

It works for me. Thanks!

@codicem-ex-cinere

Copy link
Copy Markdown

In case helpful to anyone...
I've been using variations of the above snippet for some time. After Obsidian 1.0, I had a hard time getting a custom width to consistently work. Played around and came up with the following simple solution to replace all of the above. -- limited testing

/* Custom Line Width */
body {
	--line-width: 60rem !important;
	--tab-stacked-pane-width: 850px; /* Optional pane width increase */
}
/* Custom Line Width - fixes custom html elements except dataview plugin which this negatively impacts */
.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block > div:not(.block-language-dataview) {
	max-width: 100%;
}

@JamesIslan

Copy link
Copy Markdown

In case helpful to anyone... I've been using variations of the above snippet for some time. After Obsidian 1.0, I had a hard time getting a custom width to consistently work. Played around and came up with the following simple solution to replace all of the above. -- limited testing

/* Custom Line Width */
body {
	--line-width: 60rem !important;
	--tab-stacked-pane-width: 850px; /* Optional pane width increase */
}
/* Custom Line Width - fixes custom html elements except dataview plugin which this negatively impacts */
.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block > div:not(.block-language-dataview) {
	max-width: 100%;
}

Hello! I just tried to use this snippet and unfortunately it didn't work :/. Just tested with both reading and live preview mode and it had no effect. I'm using the obsidian default theme and the 1.0 version too. Do you have any idea of what could it be?

@conaxi

conaxi commented Oct 15, 2022

Copy link
Copy Markdown

In case helpful to anyone... I've been using variations of the above snippet for some time. After Obsidian 1.0, I had a hard time getting a custom width to consistently work. Played around and came up with the following simple solution to replace all of the above. -- limited testing

/* Custom Line Width */
body {
	--line-width: 60rem !important;
	--tab-stacked-pane-width: 850px; /* Optional pane width increase */
}
/* Custom Line Width - fixes custom html elements except dataview plugin which this negatively impacts */
.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block > div:not(.block-language-dataview) {
	max-width: 100%;
}

Hello! I just tried to use this snippet and unfortunately it didn't work :/. Just tested with both reading and live preview mode and it had no effect. I'm using the obsidian default theme and the 1.0 version too. Do you have any idea of what could it be?

Hey, they changed --line-width to --file-line-width. That's why it's not working. Here's the snippet I used that worked for me in Obsidian v1.

body {
  --file-line-width: 50rem;
}

@vii33

vii33 commented Oct 15, 2022

Copy link
Copy Markdown
Author

In case helpful to anyone... I've been using variations of the above snippet for some time. After Obsidian 1.0, I had a hard time getting a custom width to consistently work. Played around and came up with the following simple solution to replace all of the above. -- limited testing

/* Custom Line Width */
body {
	--line-width: 60rem !important;
	--tab-stacked-pane-width: 850px; /* Optional pane width increase */
}
/* Custom Line Width - fixes custom html elements except dataview plugin which this negatively impacts */
.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block > div:not(.block-language-dataview) {
	max-width: 100%;
}

Hello! I just tried to use this snippet and unfortunately it didn't work :/. Just tested with both reading and live preview mode and it had no effect. I'm using the obsidian default theme and the 1.0 version too. Do you have any idea of what could it be?

Hey, they changed --line-width to --file-line-width. That's why it's not working. Here's the snippet I used that worked for me in Obsidian v1.

body {
  --file-line-width: 50rem;
}

Correct, that's the Obsidian variable according to the source code inspection.

@JamesIslan

Copy link
Copy Markdown

In case helpful to anyone... I've been using variations of the above snippet for some time. After Obsidian 1.0, I had a hard time getting a custom width to consistently work. Played around and came up with the following simple solution to replace all of the above. -- limited testing

/* Custom Line Width */
body {
	--line-width: 60rem !important;
	--tab-stacked-pane-width: 850px; /* Optional pane width increase */
}
/* Custom Line Width - fixes custom html elements except dataview plugin which this negatively impacts */
.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block > div:not(.block-language-dataview) {
	max-width: 100%;
}

Hello! I just tried to use this snippet and unfortunately it didn't work :/. Just tested with both reading and live preview mode and it had no effect. I'm using the obsidian default theme and the 1.0 version too. Do you have any idea of what could it be?

Hey, they changed --line-width to --file-line-width. That's why it's not working. Here's the snippet I used that worked for me in Obsidian v1.

body {
  --file-line-width: 50rem;
}

Wow, that's a pretty simplified snippet. Just tested and it worked, thank you! I hope Style Settings developers add this into their plugin

@conaxi

conaxi commented Oct 15, 2022

Copy link
Copy Markdown

No problem :) Glad it helped!

@GafferMan

Copy link
Copy Markdown

Can someone clue me in on what file I add this css code to to make this work?
Thanks!

@vii33

vii33 commented Oct 20, 2022

Copy link
Copy Markdown
Author

Can someone clue me in on what file I add this css code to to make this work? Thanks!

@GafferMan : There you go (last paragraphs): https://help.obsidian.md/How+to/Add+custom+styles

Just go to your settings ->appearance. There you can click on a folder icon which brings you to a directory where you can add your custom css files. Don't forget to enable them in the settings afterwards.

@Johnh42

Johnh42 commented Nov 3, 2022

Copy link
Copy Markdown

what if you are just trying to change this setting on specific pages I attempted adding a cssclass to the page and adding it to the css scriptlet like below. but it doesnt work

.pagefull, body {
  
  --file-line-width: 50rem;

}

@symonxdd

symonxdd commented Jan 27, 2023

Copy link
Copy Markdown

Can confirm that following works in Obsidian 1.1.9:
Mind that this only affects Edit Mode.

body {  
  --file-line-width: 750px; /* change width to your wishes */
}

@StrangeGirlMurph

StrangeGirlMurph commented Feb 3, 2023

Copy link
Copy Markdown

@symonxdd yes any idea how to make it also apply to reading view?

@Nehroz

Nehroz commented Mar 4, 2023

Copy link
Copy Markdown

@StrangeGirlMurph took a hot sec, but this combo of style properties seems to do the trick.

body {
    /*Set the width of your desire here*/
    --user-custom-width: 80rem !important;
    /*Code for edit view*/
    --file-line-width: var(--user-custom-width) ; 
    /*Code for live read view*/
    --content-max-width: 100rem !important;
    --content-base-width: var(--user-custom-width);
}

@StrangeGirlMurph

Copy link
Copy Markdown

@Nehroz thank you
I actually ended up just using the minimal theme with the minimal theme settings plugin which is amazing and lets me edit all those parameters with ease from the settings :)

@codethief

codethief commented Apr 7, 2023

Copy link
Copy Markdown

FWIW, I use

body {
  --file-line-width: 80ch;
}

to set my line length to 80 times the width of the "0" glyph which, since I'm using a monospace font, means that my line width will be (approximately) 80 characters. For other fonts it might also make sense to try out ex instead (= height of "x" in the current font). Overall, ch and ex give me a much better idea of how long the line is going to be than em or rem.

@mapleroyal

Copy link
Copy Markdown

Where are you guys putting this css to change the appearance?

@vii33

vii33 commented May 1, 2023

Copy link
Copy Markdown
Author

Where are you guys putting this css to change the appearance?

In Obsidian/snippets. Then the file will be shown in the Obisidan settings menu where you can toggle it on and off. See also https://help.obsidian.md/How+to/Add+custom+styles

@lonelygunter

Copy link
Copy Markdown

--file-line-width

really thx, first snippet I try, that work after only one code change

@Marks9999

Copy link
Copy Markdown

Hi all,
I would like to have more line length in Obsidian.
I put this into my snippet file:

body {
  --file-line-width: 80rem;
}

But the width of my editor line length stays always the same. The snippet folder is displays in the preference section. I called the file "mysnippets.css"I also tried 900px without success. In the preference section I turned the "readable Line length" option on an off. What is missing?

@loikein

loikein commented Dec 6, 2023

Copy link
Copy Markdown

Hi, just found out this snippet. I think now you need to add !important for it to take effect, but otherwise still works great in the newest version.
Aka,

body {
	--file-line-width: 750px !important;
}

@ai-chen2050

Copy link
Copy Markdown

what if you are just trying to change this setting on specific pages I attempted adding a cssclass to the page a

halo, bro. Have you had it fixed? specific pages works, but not affect other pages

@wazeerc

wazeerc commented Aug 14, 2024

Copy link
Copy Markdown

In case helpful to anyone... I've been using variations of the above snippet for some time. After Obsidian 1.0, I had a hard time getting a custom width to consistently work. Played around and came up with the following simple solution to replace all of the above. -- limited testing

/* Custom Line Width */
body {
	--line-width: 60rem !important;
	--tab-stacked-pane-width: 850px; /* Optional pane width increase */
}
/* Custom Line Width - fixes custom html elements except dataview plugin which this negatively impacts */
.markdown-source-view.mod-cm6.is-readable-line-width .cm-embed-block > div:not(.block-language-dataview) {
	max-width: 100%;
}

Thanks! This worked for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment