41554 blogs · [ { "id": "01a0821d-89e9-7296-94fc-61ce9076f6dc", "title": "CSS only sprite animations", "url": "https://muffinman.io/blog/css-only-sprite-animations/", "published_at": "2019-07-05T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce90968076", "title": "Accessible range slider", "url": "https://muffinman.io/blog/accessible-range-slider/", "published_at": "2019-05-01T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce917ac691", "title": "Hiding body scrollbars using CSS", "url": "https://muffinman.io/blog/hiding-body-scrollbars-using-css/", "published_at": "2019-03-02T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce91e4fd1d", "title": "Internet Explorer 6 hacks, ten years after", "url": "https://muffinman.io/blog/ie6-hacks-ten-years-after/", "published_at": "2019-02-25T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9215f9fa", "title": "Fake audio spectrum, using perlin noise", "url": "https://muffinman.io/blog/fake-audio-spectrum-using-perlin-noise/", "published_at": "2019-02-09T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce925a6534", "title": "One million npm downloads", "url": "https://muffinman.io/blog/one-million-npm-downloads/", "published_at": "2018-12-04T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce926696c2", "title": "You can fix lumpy Joy-Con using hair dryer", "url": "https://muffinman.io/blog/fix-lumpy-joy-con-using-hair-dryer/", "published_at": "2018-11-10T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce92e5cf15", "title": "JSON.stringify removes undefined, how to keep it", "url": "https://muffinman.io/blog/json-stringify-removes-undefined/", "published_at": "2018-10-01T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce93d15a1d", "title": "Flex justify content equally distanced items", "url": "https://muffinman.io/blog/flex-justify-content-equally-distanced-items/", "published_at": "2018-09-07T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce948e5e96", "title": "CSS and SVG input animations", "url": "https://muffinman.io/blog/css-and-svg-input-animations/", "published_at": "2018-08-22T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce951adebb", "title": "Fix for Chrome not rendering 1px borders", "url": "https://muffinman.io/blog/fix-for-chrome-not-rendering-borders/", "published_at": "2018-07-16T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce959001f3", "title": "Add git version tag after publishing to npm", "url": "https://muffinman.io/blog/add-git-version-tag-after-publishing-to-npm/", "published_at": "2018-07-12T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce963d0995", "title": "iOS Safari window.scrollTo / getBoundingClientRect bug", "url": "https://muffinman.io/blog/ios-safari-get-bounding-client-rect-bug/", "published_at": "2018-06-01T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce968a6180", "title": "Small Mac apps I love", "url": "https://muffinman.io/blog/small-mac-apps-i-love/", "published_at": "2018-05-09T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce969c745c", "title": "Uploading files using 'fetch' and 'FormData'", "url": "https://muffinman.io/blog/uploading-files-using-fetch-multipart-form-data/", "published_at": "2018-03-19T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce96c7bb91", "title": "CSS only elastic hover effect", "url": "https://muffinman.io/blog/elastic-hover-effect/", "published_at": "2018-03-19T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce96dc88d1", "title": "JavaScript animation loop", "url": "https://muffinman.io/blog/javascript-animation-loop/", "published_at": "2018-03-18T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce976fda6d", "title": "JavaScript 'time ago' function", "url": "https://muffinman.io/blog/javascript-time-ago-function/", "published_at": "2018-02-28T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce97b22ead", "title": "First talk in React series", "url": "https://muffinman.io/blog/it-girls-react-series/", "published_at": "2018-02-02T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce988b64a2", "title": "React Router v4 redirect decorator", "url": "https://muffinman.io/blog/react-router-v4-redirect-decorator/", "published_at": "2018-01-29T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce99352ef7", "title": "React ratio", "url": "https://muffinman.io/blog/react-ratio-component/", "published_at": "2018-01-23T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9a02e0f2", "title": "'has-tabbed aka Should I release small libraries?'", "url": "https://muffinman.io/blog/has-tabbed-aka-should-i-release-small-libraries/", "published_at": "2018-01-22T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9acbf014", "title": "Marvin v1.0", "url": "https://muffinman.io/blog/marvin-v1/", "published_at": "2018-01-05T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9aeecc73", "title": "My programming story", "url": "https://muffinman.io/blog/my-programming-story/", "published_at": "2018-01-01T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9b1a3d17", "title": "Consume less, create more", "url": "https://muffinman.io/blog/consume-less-create-more/", "published_at": "2018-01-01T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9b4f0721", "title": "Get scrollbar width in JavaScript", "url": "https://muffinman.io/blog/get-scrollbar-width-in-javascript/", "published_at": "2017-12-15T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9c098d2e", "title": "Simple JavaScript API wrapper", "url": "https://muffinman.io/blog/simple-javascript-api-wrapper/", "published_at": "2017-12-06T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9c48769f", "title": "React Window decorators", "url": "https://muffinman.io/blog/react-decorators-and-scroll-manager/", "published_at": "2017-12-02T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9cdf1dfe", "title": "Firefox 57 CPU usage is insane", "url": "https://muffinman.io/blog/firefox-57-cpu-usage-is-insane/", "published_at": "2017-11-28T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9d54117d", "title": "Blog redesign", "url": "https://muffinman.io/blog/redesign-again/", "published_at": "2017-11-27T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9e5212b4", "title": "Two design articles", "url": "https://muffinman.io/blog/design-articles/", "published_at": "2017-10-27T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9e8e0c81", "title": "Animate between two react components", "url": "https://muffinman.io/blog/animate-between-two-react-components/", "published_at": "2017-10-24T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9ed4750a", "title": "Setting up Webpack, Babel and React from scratch, revisited", "url": "https://muffinman.io/blog/webpack-babel-react-revisited/", "published_at": "2017-10-07T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9f0f1d04", "title": "Minor design refresh", "url": "https://muffinman.io/blog/minor-design-refresh/", "published_at": "2017-10-01T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9f4d3619", "title": "My blog setup", "url": "https://muffinman.io/blog/my-blog-setup/", "published_at": "2017-09-27T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9fc49b81", "title": "I have a trillion ideas", "url": "https://muffinman.io/blog/trillion-ideas/", "published_at": "2017-09-27T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ce9ff838e3", "title": "React Image Filter", "url": "https://muffinman.io/blog/react-image-filter-component/", "published_at": "2017-09-02T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea0107f12", "title": "How to update npm using nvm", "url": "https://muffinman.io/blog/nvm-updating-npm/", "published_at": "2017-09-02T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea0f62098", "title": "localStorage and sessionStorage in Safari's private mode", "url": "https://muffinman.io/blog/localstorage-and-sessionstorage-in-safaris-private-mode/", "published_at": "2017-08-09T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea177ec88", "title": "Get element offset in JavaScript", "url": "https://muffinman.io/blog/javascript-get-element-offset/", "published_at": "2017-07-26T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea1a31f85", "title": "Plx - React parallax component", "url": "https://muffinman.io/blog/plx-react-parallax-component/", "published_at": "2017-07-24T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea1ba882f", "title": "waifu2x super resolution image resizer", "url": "https://muffinman.io/blog/super-resolution-image-resizer/", "published_at": "2017-06-26T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea1f7e2c2", "title": "Animate React component by calling 'setState' in 'componentDidMount'", "url": "https://muffinman.io/blog/react-rerender-in-component-did-mount/", "published_at": "2017-06-23T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea2e20500", "title": "Introducing Marvin", "url": "https://muffinman.io/blog/introducing-marvin/", "published_at": "2017-05-25T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea3510c0d", "title": "React scroll decorator", "url": "https://muffinman.io/blog/react-scroll-position-decorator/", "published_at": "2017-05-17T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea372bd24", "title": "Time Pills tracks, stems, presets, loops and midi", "url": "https://muffinman.io/blog/time-pills-tracks-stems/", "published_at": "2017-05-14T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea3c97c87", "title": "Work&Co Tech Meetup Vol 6", "url": "https://muffinman.io/blog/work-co-tech-meetup-vol-6/", "published_at": "2017-05-09T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea4397c35", "title": "Nicer git log", "url": "https://muffinman.io/blog/nicer-git-log/", "published_at": "2017-04-25T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea4dae45a", "title": "Being a tech lead, the thing I miss the most", "url": "https://muffinman.io/blog/being-a-tech-lead/", "published_at": "2017-03-09T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea530c097", "title": "React animate height (slide up/down) component", "url": "https://muffinman.io/blog/react-animate-height-slide-up-down/", "published_at": "2017-03-06T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea55d2e63", "title": "Couple of talks I really liked", "url": "https://muffinman.io/blog/talks-i-like/", "published_at": "2017-03-05T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea5c3aaa2", "title": "Mobile Chrome vh units fix", "url": "https://muffinman.io/blog/mobile-chrome-vh-units-fix/", "published_at": "2017-01-21T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea6af9d76", "title": "Deploying React (Router) app to the subfolder on server", "url": "https://muffinman.io/blog/react-router-subfolder-on-server/", "published_at": "2017-01-18T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea7415eed", "title": "Winter Tech Meetup Vol 5", "url": "https://muffinman.io/blog/winter-tech-meetup-vol-5/", "published_at": "2017-01-12T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea7909cdc", "title": "Counting sheep", "url": "https://muffinman.io/blog/counting-sheep/", "published_at": "2016-12-28T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea7bb2aae", "title": "Looking forward to the 2017", "url": "https://muffinman.io/blog/looking-forward-to-2017/", "published_at": "2016-12-21T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea82ad422", "title": "React and Redux, Webpack 2 boilerplate", "url": "https://muffinman.io/blog/webpack-2-react-redux/", "published_at": "2016-11-24T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea87f1b70", "title": "Setting up Webpack, Babel and React from scratch - Part 3", "url": "https://muffinman.io/blog/setting-up-webpack-babel-and-react-from-scratch-part-3/", "published_at": "2016-11-24T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea8cc3fcc", "title": "Another web development awesome list", "url": "https://muffinman.io/blog/another-web-development-awesome-list/", "published_at": "2016-11-07T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea8fecbef", "title": "My two cents on the new MacBook Pro", "url": "https://muffinman.io/blog/my-two-cents-on-the-new-macbook-pro/", "published_at": "2016-10-31T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea941e886", "title": "Setting up Travis, Jekyll and GitHub pages", "url": "https://muffinman.io/blog/travis-jekyll-and-github-pages/", "published_at": "2016-10-24T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea959ad9c", "title": "Blog redesign and new features", "url": "https://muffinman.io/blog/new-design-and-features/", "published_at": "2016-10-20T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cea9b76831", "title": "Plain JavaScript animated window scroll function", "url": "https://muffinman.io/blog/animate-window-scroll-to/", "published_at": "2016-09-28T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceaa0d9d03", "title": "Implementing PhotoShop font sizes and tracking in CSS, points to pixels conversion", "url": "https://muffinman.io/blog/font-size-and-tracking-points-to-pixels/", "published_at": "2016-09-08T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceaa10396a", "title": "Always use button for clickable elements", "url": "https://muffinman.io/blog/always-use-button-for-clickable-elements/", "published_at": "2016-09-02T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceaa2db99f", "title": "SASS random() and circle animation", "url": "https://muffinman.io/blog/sass-random-and-circle-animation/", "published_at": "2016-08-30T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceaac75e3f", "title": "Setting up Webpack, Babel and React from scratch - Part 2", "url": "https://muffinman.io/blog/setting-up-webpack-babel-and-react-from-scratch-part-2/", "published_at": "2016-08-29T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceab657cda", "title": "Setting up Webpack, Babel and React from scratch", "url": "https://muffinman.io/blog/setting-up-webpack-babel-and-react-from-scratch/", "published_at": "2016-08-23T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceabba38a3", "title": "I washed my headphones", "url": "https://muffinman.io/blog/i-washed-my-headphones/", "published_at": "2016-08-03T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceacb0f90c", "title": "Null Object Tech Meetup Vol 3", "url": "https://muffinman.io/blog/null-object-meetup-vol-3/", "published_at": "2016-07-13T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61cead5c12d7", "title": "Sektor - draw and animate SVG sectors", "url": "https://muffinman.io/blog/sektor-draw-and-animate-svg-circle-sectors-2016/", "published_at": "2016-06-29T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceae022112", "title": "Change to position fixed on iOS Safari while scrolling", "url": "https://muffinman.io/blog/ios-safari-scroll-position-fixed/", "published_at": "2016-06-15T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceae25a0ee", "title": "Highlight variables in Atom, Babel template strings", "url": "https://muffinman.io/blog/highlight-vars-in-atom-babel-javascript/", "published_at": "2016-05-07T00:00:00+00:00" }, { "id": "01a0821d-89e9-7296-94fc-61ceae408bc7", "title": "Switching to Atom, this time for good", "url": "https://muffinman.io/blog/trying-atom-for-the-third-time/", "published_at": "2016-04-18T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14db71965d", "title": "Null Object Tech Meetup Vol 2", "url": "https://muffinman.io/blog/null-object-tech-meetup-vol-2/", "published_at": "2016-04-15T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14dc5d9ba4", "title": "HTML canvas video player", "url": "https://muffinman.io/blog/html-canvas-video-player-ios/", "published_at": "2016-04-05T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14dd3cceeb", "title": "My favorite bash oneliner", "url": "https://muffinman.io/blog/my-favorite-bash-oneliner/", "published_at": "2016-04-04T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14de01b4f7", "title": "Custom scroll bars", "url": "https://muffinman.io/blog/custom-scroll-bars/", "published_at": "2016-03-21T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14dec8bc8c", "title": "Simple React slider with touch support", "url": "https://muffinman.io/blog/simple-react-slider/", "published_at": "2016-03-12T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14df05419e", "title": "What is the point of the website if it kills my laptop?", "url": "https://muffinman.io/blog/what-is-the-point/", "published_at": "2016-02-29T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14df657ad2", "title": "Jekyll and Gulp workflow", "url": "https://muffinman.io/blog/jekyll-gulp-workflow/", "published_at": "2016-02-27T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14e01e4730", "title": "Jekyll Read more link", "url": "https://muffinman.io/blog/jekyll-read-more-link/", "published_at": "2016-02-27T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14e0c92e76", "title": "3D Rotating cubes hover effect", "url": "https://muffinman.io/blog/3d-rotating-cube-effect/", "published_at": "2016-02-23T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14e0eaafee", "title": "Custom Jekyll pagination", "url": "https://muffinman.io/blog/custom-jekyll-pagination/", "published_at": "2016-02-22T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14e11060cf", "title": "Animated login and signup forms", "url": "https://muffinman.io/blog/animated-login-signup-forms/", "published_at": "2016-02-22T00:00:00+00:00" }, { "id": "01a0821d-89ea-72f3-8200-cc14e1caf01f", "title": "Hello World", "url": "https://muffinman.io/blog/hello-world/", "published_at": "2016-02-21T00:00:00+00:00" } ] posts Claim your blog
Back to Stanko Tadić
Blog · corpus.blog/blogs/muffinman.io/posts

Stanko Tadić

muffinman.io

2019

2018

2017

2016