Iâm an original post
Iâm a reply!
Iâm another reply!
Iâm the 2nd to last reply.
let's talk about Bridgerton tea, my ask is open

PR's Tumblrdome
almost home
Today's Document

if i look back, i am lost
YOU ARE THE REASON
Lint Roller? I Barely Know Her
noise dept.

Love Begins
PUT YOUR BEARD IN MY MOUTH
we're not kids anymore.
One Nice Bug Per Day
I'd rather be in outer space đ¸
KIROKAZE

â

tannertan36
tumblr dot com
Monterey Bay Aquarium
Jules of Nature

oozey mess
seen from Argentina
seen from Sweden
seen from T1

seen from Malaysia
seen from Romania
seen from Moldova
seen from United States
seen from Saudi Arabia

seen from United Kingdom
seen from United States

seen from Singapore
seen from United States
seen from Belgium

seen from Argentina

seen from United States
seen from Philippines

seen from South Korea
seen from United States
seen from United States
seen from Belgium
@webdesigh
Iâm an original post
Iâm a reply!
Iâm another reply!
Iâm the 2nd to last reply.
Remove Redirects v2.0
Compatible with the original Remove Redirects, but I recommend just removing that because Tumblr doesnât seem to use that format anymore
Purpose: Change external links from https://href.li/?https://example.com to https://example.com
Instructions
Copy and paste the code below right before </body> (may need to retype quotation marks). This uses basically zero jQuery, so it should not conflict with other things in your theme.
<script> function noHrefLi(){ Â Â Â var linkSet = document.querySelectorAll('a[href*="href.li/?"]'); Â Â Â Array.prototype.forEach.call(linkSet,function(el,i){ Â Â Â Â Â Â Â var theLink = linkSet[i].getAttribute('href').split("href.li/?")[1]; Â Â Â Â Â Â Â linkSet[i].setAttribute("href",theLink); Â Â Â }); } noHrefLi(); </script>
Keep reading
Ever since I started using landing pages on my blog, a lot of people have asked me how I do it. I ended up making a tutorial on it but, in the meantime, I moved blogs and the tutorial is no longer working. Not only that, the tutorial was also not entirely correct since I wrote it shortly after I found out how to create landing pages.
Since the original tutorial is now gone, the logical thing to do is to remake it in a more accurate way now that Iâve been using landing pages for quite some time and bettered their coding. Letâs begin.
Difficulty: â â â°â°â°
Keep reading
Quick Tip!
Know the differences between kerning, leading, and tracking. Each one is crucial for optimally spacing typography. We hope that the diagram helps your understanding as well!
Git Cheat Sheet - Learn Git in One Simple Infographic Web Design & Web Development
Masterpost I: DESIGN Resources* âŻâŻ by Nicole*** of CMPSBLS
i get a lot of asks/messages about graphic design so heres a rec list!⨠***note: i am not a graphic designer so these are just recs!ďźâďźžâ˝ďźžâďź *- some sites may have products you have to pay for please look carefully!⨠⥠- personal faves! || Š - sources
GRAPHIC DESIGN:
is art with a purpose. It involves a creative and systematic plan to solve a problem or achieve certain objectives, with the use of images, symbols or even words. Š
how to speak designer: terms (v useful) (*´âď˝*)
TYPOGRAPHY
it is the art and technique of arranging type to make written language legible, readable, and appealing when displayed. Š Â
lets talk more about my bf typography âĽďźďžÂ´â`ďź
90% of design is typography (infographic)
IMITATION VS. INSPIRATION
as we go through these websites note that graphic designers work hard but so pls take care of the artists (he)art please!
simply put: donât plagiarize dont copy any art ever in the end youâre going to regret it. ďźďźă¸ďźďź
DESIGN RULES GUIDELINES there are no rules in art be freE!
6 principles of design + principles of design!
20 design principles âĄâĄÂ fav! the inforgraphic is so wOW!
10 commandments of design
effective visual communications âĄ
iOS cheat sheet dimensions + file formats
WEBSITES for inspiration/resources
BEHANCE âĄâĄâĄ âŻâŻ for layout ins/fonts
DRIBBLE ⥠âŻâŻ for inspiration
FROM UP NORTH âŻâŻ for lettering/typography ins
THEDSGNBLOG ⥠âŻâŻ for everythigN
CREATIVEBLOQ âŻâŻ for advice/articles!
CREATIVE MARKET ⥠âŻâŻ for resources/psds
PIXEL BUDDHA  âŻâŻ for resources
ultimate list
go to places for inspo (i feel alive bc these r great!)
2500 resources omfgâŚi M ALIVE I am fiLLED with energy
TUMBLR BLOGS for advice/inspiration ++
@goodtypography
@behance
@studioblrcollective - art studyblrs!! lIEK?? omg so useful
TUMBLR POSTS of advice/info & everythign!
@educatierâs graphic design mps! (all her mps tho!! A+++)
answers by @genspen! (one) (two)
masterposts abt graphic design by @rorystudies
FONTS how to use them & where to get them!
dafont âŻâŻ rly easy to dl fonts here!
googlefonts âŻâŻ another rly common site but NICE!
1001 fonts
freebiesbug âŻâŻ also for icons/mockups!!! fav
behance âŻâŻ i can depend my life on this sItE
fontsource
100 best free fonts
18 rules, another pin, top 5 rules
you need a font? (infographic)
COLORS & palettes /throws flowers everywhere/
coolors
computerhope
colourlovers
prettycolors
colordot
the art of color coordination (infographic)
color psychology
PICTURES free stock photos backgrounds & gradients!
free stock photos
 mp by pistachi-o , neonbikethemes
PLUS stuff fr Nicole
my design & art board on Pinterest
info abt my printables | my printables tag
& thats aboUT IT! those r my recs for design & stuffďźďźžâ˝ďźžâďźhopefully i get to post my other mp about tips in graphic design! i hope everyone benefits from this mp (not just aspiring graphic designers/artists!!) & good luck to everyone! take care & happy designing! (*ăťâďź*)
Introducing tumblrControls.js, a jQuery script that implements Tumblrâs full-width default controls into any theme and allows full color/style customization, previously featured in my theme Opticant.
Installation Guide /Â Themes by Rachael
Text like and reblog buttons
In a previous tutorial, I demonstrated how to make like and reblog buttons as SVG icons. Now, I will show you how to make like and reblog buttons appear as text, like I did in my prism theme :)
Keep reading
How to make a featured post using Tumblr API
As you probably already know, Tumblr doesnât have the ability to have featured posts. Just imagine you have an important post that needs to be pinned on your blog that is dynamically updated with no efforts (no need to directly tweak your posts in your HTML editor, just tag the post with âfeaturedâ and it will automatically show up). You can see the example on my blog with the title named âlatest postsâ. In it, you can see four posts that are dynamically added if I tag them with a specific tag. Cool, isnât? You can see the example here
Thus, I am here sharing my way on how to make it possible using jQuery and Tumblr API (I am sure there will another way to make this happen using vanilla JS, but since I am not good at this, I consider using jQuery instead). Hopefully, it will help you guys
Keep reading
minimal themes / basecodesâŚÂ
as i released my original basecode 4 years ago ( !!! ) i thought iâd publish updated ( and slightly tidier ) versions. all sections in the code are labelled for ease of editing - no further instructions are included in the code, but for help with editing, please see my theme 101 tutorials & other coding tutorials.
these codes are very basic but are fully functional themes in their own right. they are html and css based codes ( with the exception of the tooltips script ). there are also examples of âcalcâ functions and âifâ options in the themes as well as different post block sizes.
theyâre also pretty much where i start when i make my own themes âĽ
all codes feature:
metatags to change colours/font size etc.
user portrait
3 extra links
optional show/hide tags
optional show/hide captions
post width options for 400px or 500px
includes tooltips script
includes linearicons
theme 1 / base code 1 -Â a simple centered theme with sidebar:Â preview + codeÂ
theme 2 / base code 2 -Â a simple centered theme with header:Â preview + code
theme 3 / base code 3 -Â a simple centered container theme with sidebar:Â preview + code
terms of use:Â
if you alter the themes for either ( free ) public release or personal use and would like to include your own credit, feel free to change the bottom credit url.  if using the theme âas isâ or with minimal changes, then please leave this credit in tact. credit at the top of the code will not be visible but must remain in all public/personal themes. please do not repost unedited as your own theme/base code. please reblog or like this post if using!
if youâd like to tag me in any creations please do, iâd love to see how the codes are used! thank you and enjoy!
step by step of adding a video background to your theme
1) Grab your video link
You canât upload your videos with tumblrâs theme assets, but you can host them externally with sites like dropbox. @glenthemesâ has a great post on how to do this! Their post is about audio files, but the same applies to videos (and any file type). You could also use the iframe from a video post, but iframes offer less customization options, so you might not be able to get the same results as this method.Â
2) The HTML
In my example, Iâm using a royalty free video from pexels. Place this video wherever you want it to be. I put it in my <aside> tag, but if you want this to be the background to your whole theme, put it under <body>.Â
 <video autoplay muted loop> <source src="https://dl.dropbox.com/s/zng5xrdjssic09q/video.mp4" type="video/mp4"> </video>
So what does this do?Â
I want to use this as a background image, so by not including the âcontrolsâ attribute, Iâm hiding the play button and other controls.Â
In order for the âautoplayâ attribute to work, we need to include the âmutedâ attribute (thank goodness for that). And then we add âloopâ so that it continues in the background.
So now our video will autoplay since we removed the controls, muted to allow autoplay, and set the video to loop.
3) The CSS
In this example Iâm using this as a sidebar, but you can still modify this to make it a background for a container or the whole body.
aside video { Â Â height:100%; Â Â width:100%; Â Â position:absolute; Â Â object-fit: cover;
}
I want the height and width to match the height and width of our sidebar, and adding position:absolute; will it function as a background image so it wonât impact the other content in the sidebar. Object-fit: cover; will make sure the video covers the whole container so it will look like a background image.
4) Extra
The first 3 steps are all you need to get the video to appear as a background âimageâ. If you want to use this on a sidebar, you can display your content on top by adding another container with position:absolute, 100% height and width, and then style to your liking! I recommend adding a slight color overlay to make sure your text doesnât blend in with the background.
You can view the live preview here:Â https://videothm.tumblr.com/
How Reblogs Work
The reblog is a beautiful thing unique to Tumblr â often imitated, but never successfully reproduced elsewhere. The reblog puts someone elseâs post on your own Tumblr blog, acting as a kind of signal boost, and also giving you the ability to add your own comment to it, which your followers and anyone looking at the postâs notes will see. Reblogs can also be reblogged themselves, creating awesome evolving reblog trails that are the source of so many memes we love. But what is a reblog trail versus a reblog tree, and how does it all work under the hood?
A âreblog treeâ starts at the original post (we call it the âroot postâ internally at Tumblr) and extends outwards to each of its reblogs, and then each reblog of those reblogs, forming a tree-like structure with branches of âreblog trailsâ. As an example, you can imagine @staffâ making a post, and then someone reblogging it, and then others reblogging those reblogs. I can even come through and reblog one of the reblogs:
A âreblog trailâ is one of those branches, starting at the original post and extending one at a time down to another post. In the reblog trail, there may actually be some reblogs that added their own content and some that didnât â reblogs that added content are visible in the trail, while the intermediate ones that didnât may not be visible.
Youâll notice that the reblog trail youâre viewing somewhere (like on your dashboard) doesnât show all of this reblog tree â only part of it. If you open up the notes on any wildly popular post, youâll probably see lots of reblogs in there that you arenât seeing in your current view of the postâs reblog trail. The above diagram shows the whole reblog tree (which you donât see) and the current reblog trail youâre actually viewing (in orange). If you want to visualize a postâs entire reblog tree, the reblog graphs Tumblr Labs experiment shows off these reblog trees and trails as kind of big floppy organisms. Theyâre a useful visualization of how content percolates around Tumblr via reblogs. You can turn on the experiment and see it on web only right now, but hereâs an example:
The tiny orange dot is the post weâre viewing, and the green line is a reblog trail showing how the post got reblogged along many blogs. And there are tons of other branches/trails from the original post, making dozens of different reblog trails. This is a much larger, more realistic example than my simplified diagrams above. You can imagine that my diagram above is just the start of one of these huge reblog trees, after more and more people have reblogged parts of the existing tree.
Storing Reblog Trail Information
The way we actually store the information about a reblog and its trail has changed significantly over the last year. For all posts made before this year, all of a postâs content was stored as a combination of HTML and properties specific on our Post data model. A specific reblog also stored all of the contents of its entire reblog trail (but not the whole reblog tree). If you have ever built a theme on Tumblr or otherwise dug around the code on a reblog, youâll be familiar with this classic blockquote structure:
<p><a class="tumblr_blog" href="http://maria.tumblr.com/post/5678">maria</a>:</p> <blockquote> <p><a class="tumblr_blog" href="http://cyle.tumblr.com/post/1234">cyle</a>:</p> <blockquote> <!-- original post content --> <p>look at my awesome original content</p> </blockquote> <!-- the reblog of the original post's content --> <p>well, it's just okay original content</p> </blockquote> <!-- this is the new content, added in our reblog of the reblog --> <p>jeez. thanks a lot.</p>
This HTML represents a (fake) old text post. The original post is the blockquote most deeply nested in the HTML: âlook at my awesome original contentâ and it was created by cyle. Thereâs a reference to the original postâs URL in the anchor tag above its blockquote tag. Moving out one level to the next blockquote is a reblog of that original post, made by maria, which itself adds some of its own commentary to the reblog trail. Moving out furthest, to the bottom of the HTML, is the latest reblog content being added in the post weâre viewing. With this structure, we have everything we need to show the post and its reblog trail without having to load those posts in between the original and this reblog.
If this looks and sounds confusing, thatâs because it is quite complex. Weâre right there with you, but the reasons behind using this structure were sound at the time. In a normal, traditional relational database, youâd expect something like the reblog trail to be represented as a series of references: a reblog post references its parent post, root post, and any intermediate posts, and weâd load those postsâ contents at runtime with a JOIN query or something very normalized and relational like that, making sure we donât copy any data around, only reference it.
However, the major drawback of that traditional approach, especially at Tumblrâs scale, is that loading a reblog could go from just one query to several queries, depending on how many posts are in the reblog trail. Some of the reblog trails on Tumblr are thousands of posts long. Having to load a thousand other posts to load one reblog would be devastating. Instead, by actually copying the reblog trail content every time a reblog is made, we keep the number of queries needed constant: just one per post! A dashboard of 20 reblogs loads those 20 posts, not a variable amount based on how many reblogs are in each postâs trail. This is still an oversimplification of what Tumblr is really doing under the hood, but this core strategy is real.
Broken Reblog Trails
There is another obvious problem with the above blockquote/HTML strategy, one that you may have not realized you were seeing but youâve probably experienced it before. If the only reference we have in the reblog trail above is a trail postâs permalink URL, what happens if that blog changes its name? Tumblr does not go through all posts and update that name in every copy of every reblog that blog has ever been involved in. Instead, it gracefully fails, and you may see a default avatar there as a placeholder. We literally donât have any other choice, since no other useful information is stored with the old post content.
At worst, someone else takes the name of a blog used in the trail. Imagine if, in the above example, oli changed his blog name to british-oli and someone else snagged the name oli afterwards. Thankfully in that case, the post URL still does not work, as the post ID is tied to the old oli blog. The end result is that it looks like thereâs a âbrokenâ item in the reblog trail, usually manifesting as the blog looking deactivated or otherwise not accessible. This isnât great.
As a part of the rollout of the Neue Post Format (NPF), we changed how we store the reblog trail on each post. For fully NPF reblog trails, we actually do store an immutable reference to each blog and post in the trail, instead of just the unreliable post URL. This allows us to have a much lower failure rate when someone changes their blog name or otherwise becomes unavailable. We keep the same beneficial strategy of usually having all the information we need so we donât need to load any of those posts along the trail, but the option to load the individual post or blog is there if we absolutely need it, especially in cases like if one of those blogs is somebody youâre blocking.
If youâve played around with reblog trails in NPF, youâll see the result of this change. The reblog trail is no longer a messy nested blockquote chain, but instead a friendly and easy to parse JSON array, always starting with the original post and working down the trail. This includes a special case when an item in the trail is broken in a way we canât recover from, which happens sometimes with very old posts.
The same reblog trail and new content as seen above, but in the Neue Post Format:
{ "trail": [ { "post": { "id": "1234", }, "blog": { "name": "cyle" }, "content": [ { "type": "text", "text": "look at my awesome original content" } ], "layout": [] }, { "post": { "id": "3456", }, "blog": { "name": "maria" }, "content": [ { "type": "text", "text": "well, it's just okay original content" } ], "layout": [] } ], "content": [ { "type": "text", "text": "jeez. thanks a lot." } ] }
Got questions?
If youâve ever wondered how something works on Tumblr behind the scenes, feel free to send us an ask!
- @cyleÂ
Very Easy Fix for the Spotify and Bandcamp Audio Players
I saw this tutorial and figured I might as well make one myself. The code makes the players both smaller and responsive with or without infinite scrolling. Unlike this tutorial, it does not use media queries. Itâs also extremely easy to do!Â
You may have noticed that both the Spotify and Bandcamp players donât respond to changes in post size. If you use @shythemesââs video resizing script, the players will respond, but the Bandcamp player gets cut off.Â
Whether you are using shythemesâs video resizing script or not, all you need to do to fix this is use a few lines of CSS (place code before </style>):
.spotify_audio_player { Â Â height:80px!important; Â Â width:100%!important; } .bandcamp_audio_player { Â Â height:120px!important; Â Â width:100%!important; }
Here is an easy CSS solution for a smaller and responsive Soundcloud player if you are not using shythemesâs minimal Soundcloud player script.
.soundcloud_audio_player { Â Â height:150px!important; Â Â width:100%!important; }
The only minor issue is, 250px is the smallest width the Bandcamp audio player can be before it gets cut off. It also wonât exceed 700px.
If you want to be extra fancy, you can write a script to do this for you. Youâre going to need to write a function and a callback for it to work in infinite scroll, assuming youâre using Paul Irishâs infinite scrolling script. I edited shythemesâs Soundcloud script for organization and because I needed to for the script (the Soundcloud player) to work in infinite scroll. I put both solutions in my code just in case, but frankly, its really unnecessary. The CSS works just fine.Â
The images of the results are under the cut.
Keep reading
I was asked to make a masterpost on websites like Codecademy, so Iâve tried to compile a list of the best (and mostly free!!). In no particular order:Â
1. Codecademy [x]
I couldnât not include Codecademy! Just in case you havenât checked it out, itâs pretty neat. It has courses for learning languages and web developer skills.
Languages: Python, Ruby, Java, PHP, jQuery, JavaScript, HTML/CSS
Extras: Git, SQL, Command Line, AngularJS, Ruby on Rails
2. Code School [x]
This is pretty similar to Codecademy with the in-browser coding and such. It also has additional features like teaching videos. A good introduction to programming languages.
Languages: Python, Ruby, Javascript, HTML/CSS
Extra: iOS development with Objective-C or Swift, Git, SQL
3. Learnaroo [x]
Has tutorials followed by mini challenges based on the concepts youâve just learnt! It also has some reference pages called âLearn x by Exampleâ. Looks pretty good.
Languages: Python, Java, Ruby, HTML/CSS
Extra: Algorithms, Mathematics, + a bunch of premium membership stuff
4. Learn âŚÂ
A set of related websites (see below) which have mini tutorials on language concepts followed by mini challenges, similar to Learnaroo.
Languages: Python, Java, C, C#, Â JavaScipt, PHP, Shell
5. Code Combat [x]
Basically, it turns learning to code into a game! As you move through the levels, new concepts are introduced, so the code you need to write to play the game gets harder.Â
Languages: Python, Java, JavaScript, CoffeeScript, Clojure, Lua
6. Codingame [x]
Similar idea to Code Combat, but a little more advanced.Â
Languages: Python, Java, Ruby, C, C++, C#, Haskell, VB ⌠thereâs actually loads it supports.
7. Code Wars [x]
This is more for âtrainingâ with a language you already know. It offers plenty of practice through challenges, so itâs really good for improving your coding skills.Â
Languages: Python, Ruby, Java, C#, Haskell, JavaScript, CoffeeScript, Clojure
8. Coderbyte [x]
This offers some video tutorials and challenges for a few languages, plus special courses on specific algorithms and bootcamp/interview prep. You need a premium membership for quite a lot of things, though (e.g. I donât think you can watch any of the videos with a free membership).
Languages: Python, Ruby, JavaScript
Extras: Algorithms, Bootcamp Prep, Job Interview Prep
9. Free Code Camp [x]
Mini tutorials followed by mini challenges. Has a number of courses on the languages below!
Languages: HTML/CSS, jQuery, JavaScript
Extras: Git, Algorithms, + a bunch of projects to complete
10. Programmr [x]
Has courses to learn various languages through doing little exercises/challenges in the browser, similar to previous examples. Also has âzonesâ for more languages, where you can find challenges, example code and projects people have shared.Â
Languages: Python, Java, C++, C#, PHP, jQuery
11. CheckIO [x]
Only offers Python, but I still think itâs really great. You move from level to level, getting challenges which are gradually trickier. Learn by doing!
12. Rails for Zombies [x]
For people who already know a bit of Ruby, but nothing about Ruby on Rails! Each level begins with a short video followed by interactive challenges where you program Rails in the browser.
Thatâs all (for now!) Hope this is helpful! (ďž^â^)ďžďž
Hello! I've seen you're pretty good with javascript, and I was wondering if there is a way to change the audio player background color with plain javascript, instead of using jquery like a tumblr made a tutorial? I tried to search on google but seems like I don't getting how to do that. Thank you! ps I love your no js photoset!!
Hello!Â
I believe adding this snippet before
should do the trick:Â
const iframes = document.querySelectorAll('iframe.tumblr_audio_player');iframes.forEach((i) => {   const background = '#bdc2e8'; // audio player background   const text = '#fff'; // audio player text   i.onload = function() {     const iframeDocument = i.contentDocument || i.contentWindow.document;   if (!iframeDocument) {     throw "iframe couldn't be found in DOM.";   }   iframeDocument.head.innerHTML += '<style type="text/css">.audio-player { background:' + background + '; color: ' + text + ' !important; }.audio-player .audio-info .track-artist { color: ' + text + ' !important; }';   };});
(I simply converted @shudesignsâs tutorial into vanilla JavaScript)
If you have any problems, feel free to message me again!
hello, i was wondering if you knew how to shorten larger numbers using javascript. for example, i want to display a note count that is 1203 as 1.2k. i know it's possible, i just don't know how to do it. :(
how much do you love me
  var $container = $('.content');   $container.find('.notecount').each(function(){     var n = $(this).html().split(' ')[0].replace(/,/g, '');     if (n > 999) {       n = Math.floor(n / 100) / 10;       $(this).text(n + 'k notes');     }   });
after you include this in your scripts, you need to check three things
add the class ânotecountâ to your note count links
make sure the container class âcontentâ above matches the container element in your particular theme
include it in your infinite scroll function if youâre using one
*âĄ~ mobile photosets fix â widths & custom spacing
When uploading images to Tumblr on mobile, on some blogs the images will appear stacked on top of one another rather than in rows, as they should be. Iâve written a fix that solves this layout problem, and have given you the option to customise the spacing between images. This works regardless of your âuse new post typesâ option! [Here] is a live example.
Special thanks to @codematurgy who wrote the npf lightbox plugin âĄ
Paste the following before </body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="//dl.dropbox.com/s/m8mtje1avef2a2y/npf-styling.js"></script> <script src="//cdn.jsdelivr.net/gh/boscoxvi/npfphotosets/npfphotosets.js"></script> <script> npfPhotosets(".posts", npfOptions); // .posts is your posts selector </script>
Paste the following before </style>
/*------- npf photoset image spacing-------*/ :root { Â Â --NPF-Image-Spacing:4px; /* spacing value */ } .npf_row { Â Â display:flex!important; Â Â margin:calc(var(--NPF-Image-Spacing) / -2)!important; Â Â margin-bottom:calc(var(--NPF-Image-Spacing) / 2)!important; } .npf_row:last-of-type { Â Â margin-bottom:calc(var(--NPF-Image-Spacing) / -2)!important; } .tmblr-full { Â Â flex:1; Â Â margin:0!important; Â Â padding:calc(var(--NPF-Image-Spacing) / 2)!important; Â Â width:auto!important; Â Â height:auto!important; Â Â outline:none; }
And thatâs it! Further help & installation issues under the cut.
Keep reading