{"id":13634223,"url":"https://github.com/dsward2/macSVG","last_synced_at":"2025-04-18T14:33:55.106Z","repository":{"id":45169965,"uuid":"71117099","full_name":"dsward2/macSVG","owner":"dsward2","description":"macSVG - An open-source macOS app for designing HTML5 SVG (Scalable Vector Graphics) art and animation with a WebKit web view ➤➤➤","archived":false,"fork":false,"pushed_at":"2022-07-17T04:46:15.000Z","size":9427,"stargazers_count":1172,"open_issues_count":22,"forks_count":74,"subscribers_count":42,"default_branch":"master","last_synced_at":"2024-11-05T16:12:21.687Z","etag":null,"topics":["animation","arkansas","bezier","editor","graphics","html5","ios","mac","macos","morphing","objective-c","path","scalable-vector-graphics","smil","svg","swift","vector-graphics","web-developer","webkit","xml"],"latest_commit_sha":null,"homepage":"http://macsvg.org/","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsward2.png","metadata":{"files":{"readme":"README.html","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-17T08:37:55.000Z","updated_at":"2024-11-03T07:20:26.000Z","dependencies_parsed_at":"2022-07-13T16:48:00.305Z","dependency_job_id":null,"html_url":"https://github.com/dsward2/macSVG","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsward2%2FmacSVG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsward2%2FmacSVG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsward2%2FmacSVG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsward2%2FmacSVG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsward2","download_url":"https://codeload.github.com/dsward2/macSVG/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223253495,"owners_count":17114192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animation","arkansas","bezier","editor","graphics","html5","ios","mac","macos","morphing","objective-c","path","scalable-vector-graphics","smil","svg","swift","vector-graphics","web-developer","webkit","xml"],"created_at":"2024-08-01T23:00:59.421Z","updated_at":"2024-11-09T03:30:39.760Z","avatar_url":"https://github.com/dsward2.png","language":"Objective-C","readme":"\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\n\u003chead\u003e\n\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\"\u003e\n\u003ctitle\u003eREADME\u003c/title\u003e\n\n\n\u003cstyle type=\"text/css\"\u003e\nbody {\n  font-family: Helvetica, arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.6;\n  padding-top: 10px;\n  padding-bottom: 10px;\n  background-color: white;\n  padding: 30px; }\n\nbody \u003e *:first-child {\n  margin-top: 0 !important; }\nbody \u003e *:last-child {\n  margin-bottom: 0 !important; }\n\na {\n  color: #4183C4; }\na.absent {\n  color: #cc0000; }\na.anchor {\n  display: block;\n  padding-left: 30px;\n  margin-left: -30px;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0; }\n\nh1, h2, h3, h4, h5, h6 {\n  margin: 20px 0 10px;\n  padding: 0;\n  font-weight: bold;\n  -webkit-font-smoothing: antialiased;\n  cursor: text;\n  position: relative; }\n\nh1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;\n  text-decoration: none; }\n\nh1 tt, h1 code {\n  font-size: inherit; }\n\nh2 tt, h2 code {\n  font-size: inherit; }\n\nh3 tt, h3 code {\n  font-size: inherit; }\n\nh4 tt, h4 code {\n  font-size: inherit; }\n\nh5 tt, h5 code {\n  font-size: inherit; }\n\nh6 tt, h6 code {\n  font-size: inherit; }\n\nh1 {\n  font-size: 28px;\n  color: black; }\n\nh2 {\n  font-size: 24px;\n  border-bottom: 1px solid #cccccc;\n  color: black; }\n\nh3 {\n  font-size: 18px; }\n\nh4 {\n  font-size: 16px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  color: #777777;\n  font-size: 14px; }\n\np, blockquote, ul, ol, dl, li, table, pre {\n  margin: 15px 0; }\n\nhr {\n  background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;\n  border: 0 none;\n  color: #cccccc;\n  height: 4px;\n  padding: 0;\n}\n\nbody \u003e h2:first-child {\n  margin-top: 0;\n  padding-top: 0; }\nbody \u003e h1:first-child {\n  margin-top: 0;\n  padding-top: 0; }\n  body \u003e h1:first-child + h2 {\n    margin-top: 0;\n    padding-top: 0; }\nbody \u003e h3:first-child, body \u003e h4:first-child, body \u003e h5:first-child, body \u003e h6:first-child {\n  margin-top: 0;\n  padding-top: 0; }\n\na:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {\n  margin-top: 0;\n  padding-top: 0; }\n\nh1 p, h2 p, h3 p, h4 p, h5 p, h6 p {\n  margin-top: 0; }\n\nli p.first {\n  display: inline-block; }\nli {\n  margin: 0; }\nul, ol {\n  padding-left: 30px; }\n\nul :first-child, ol :first-child {\n  margin-top: 0; }\n\ndl {\n  padding: 0; }\n  dl dt {\n    font-size: 14px;\n    font-weight: bold;\n    font-style: italic;\n    padding: 0;\n    margin: 15px 0 5px; }\n    dl dt:first-child {\n      padding: 0; }\n    dl dt \u003e :first-child {\n      margin-top: 0; }\n    dl dt \u003e :last-child {\n      margin-bottom: 0; }\n  dl dd {\n    margin: 0 0 15px;\n    padding: 0 15px; }\n    dl dd \u003e :first-child {\n      margin-top: 0; }\n    dl dd \u003e :last-child {\n      margin-bottom: 0; }\n\nblockquote {\n  border-left: 4px solid #dddddd;\n  padding: 0 15px;\n  color: #777777; }\n  blockquote \u003e :first-child {\n    margin-top: 0; }\n  blockquote \u003e :last-child {\n    margin-bottom: 0; }\n\ntable {\n  padding: 0;border-collapse: collapse; }\n  table tr {\n    border-top: 1px solid #cccccc;\n    background-color: white;\n    margin: 0;\n    padding: 0; }\n    table tr:nth-child(2n) {\n      background-color: #f8f8f8; }\n    table tr th {\n      font-weight: bold;\n      border: 1px solid #cccccc;\n      margin: 0;\n      padding: 6px 13px; }\n    table tr td {\n      border: 1px solid #cccccc;\n      margin: 0;\n      padding: 6px 13px; }\n    table tr th :first-child, table tr td :first-child {\n      margin-top: 0; }\n    table tr th :last-child, table tr td :last-child {\n      margin-bottom: 0; }\n\nimg {\n  max-width: 100%; }\n\nspan.frame {\n  display: block;\n  overflow: hidden; }\n  span.frame \u003e span {\n    border: 1px solid #dddddd;\n    display: block;\n    float: left;\n    overflow: hidden;\n    margin: 13px 0 0;\n    padding: 7px;\n    width: auto; }\n  span.frame span img {\n    display: block;\n    float: left; }\n  span.frame span span {\n    clear: both;\n    color: #333333;\n    display: block;\n    padding: 5px 0 0; }\nspan.align-center {\n  display: block;\n  overflow: hidden;\n  clear: both; }\n  span.align-center \u003e span {\n    display: block;\n    overflow: hidden;\n    margin: 13px auto 0;\n    text-align: center; }\n  span.align-center span img {\n    margin: 0 auto;\n    text-align: center; }\nspan.align-right {\n  display: block;\n  overflow: hidden;\n  clear: both; }\n  span.align-right \u003e span {\n    display: block;\n    overflow: hidden;\n    margin: 13px 0 0;\n    text-align: right; }\n  span.align-right span img {\n    margin: 0;\n    text-align: right; }\nspan.float-left {\n  display: block;\n  margin-right: 13px;\n  overflow: hidden;\n  float: left; }\n  span.float-left span {\n    margin: 13px 0 0; }\nspan.float-right {\n  display: block;\n  margin-left: 13px;\n  overflow: hidden;\n  float: right; }\n  span.float-right \u003e span {\n    display: block;\n    overflow: hidden;\n    margin: 13px auto 0;\n    text-align: right; }\n\ncode, tt {\n  margin: 0 2px;\n  padding: 0 5px;\n  white-space: nowrap;\n  border: 1px solid #eaeaea;\n  background-color: #f8f8f8;\n  border-radius: 3px; }\n\npre code {\n  margin: 0;\n  padding: 0;\n  white-space: pre;\n  border: none;\n  background: transparent; }\n\n.highlight pre {\n  background-color: #f8f8f8;\n  border: 1px solid #cccccc;\n  font-size: 13px;\n  line-height: 19px;\n  overflow: auto;\n  padding: 6px 10px;\n  border-radius: 3px; }\n\npre {\n  background-color: #f8f8f8;\n  border: 1px solid #cccccc;\n  font-size: 13px;\n  line-height: 19px;\n  overflow: auto;\n  padding: 6px 10px;\n  border-radius: 3px; }\n  pre code, pre tt {\n    background-color: transparent;\n    border: none; }\n\nsup {\n    font-size: 0.83em;\n    vertical-align: super;\n    line-height: 0;\n}\n\nkbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb\n}\n\n* {\n\t-webkit-print-color-adjust: exact;\n}\n@media screen and (min-width: 914px) {\n    body {\n        width: 854px;\n        margin:0 auto;\n    }\n}\n@media print {\n\ttable, pre {\n\t\tpage-break-inside: avoid;\n\t}\n\tpre {\n\t\tword-wrap: break-word;\n\t}\n}\n\u003c/style\u003e\n\n\n\u003c/head\u003e\n\n\u003cbody\u003e\n\n\u003ch1 id=\"toc_0\"\u003emacSVG 1.2\u003c/h1\u003e\n\n\u003cp\u003e\u003cimg src=\"https://cdn.rawgit.com/dsward2/macSVG/7cf2b09884673e1bb65a0a9ab5df184741bb7c65/README_images/macsvg-logo-animation.svg?sanitize=true\" width=\"660\" height=\"105\"\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eJuly 16, 2022 – This release of macSVG 1.2 adds support for Macs with Apple Silicon M1/M2 processors.\u003c/strong\u003e\u003c/p\u003e\n\n\u003chr\u003e\n\n\u003cp\u003e\u003cstrong\u003emacSVG is a MIT-licensed open-source macOS app for designing HTML5 SVG 1.1 (Scalable Vector Graphics) art and animation.\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/dsward2/macSVG/master/README_images/macsvg-screenshot.jpg\" alt=\"macSVG Screenshot\"\u003e\u003c/p\u003e\n\n\u003cp\u003emacSVG can produce dynamic, high-quality graphics and animation for HTML5 web views that work on most major desktop and mobile platforms, including iOS, Android, macOS, Microsoft Windows and Linux.\u003c/p\u003e\n\n\u003cp\u003emacSVG uses the standard macOS WebKit framework for interactive editing and rendering of SVG documents, in addition to several Cocoa plug-in bundles for editing SVG elements and attributes.\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eThe latest version of macSVG.app – code-signed with a registered Apple ID from the developer – is available for download at the Github project release page:\u003c/strong\u003e \u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/dsward2/macSVG/releases\"\u003ehttps://github.com/dsward2/macSVG/releases\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eSee the macSVG website for more documentation and release notes - \u003ca href=\"https://macsvg.org/\"\u003ehttps://macsvg.org/\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\n\u003ch1 id=\"toc_1\"\u003eExamples:\u003c/h1\u003e\n\n\u003cp\u003e\u003cimg src=\"https://cdn.rawgit.com/dsward2/macSVG/master/macSVG/Resources/macsvg_examples/svg/path_animation_and_shape_morphing.svg\"\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cimg src=\"https://cdn.rawgit.com/dsward2/macSVG/master/macSVG/Resources/macsvg_examples/svg/animated_text_on_a_continuous_loop.svg\"\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cimg src=\"https://cdn.rawgit.com/dsward2/macSVG/238a59b65010ad2e77c8da4005fb37338b2669c4/macSVG/Resources/macsvg_examples/svg/animate_stroke-dasharray_on_path.svg\"\u003e\u003c/p\u003e\n\n\u003cp\u003eApple’s free Xcode system is required to build the macOS application from the source code. Most of the application source code is written in Objective-C language, but a Swift language target has been added recently for a plug-in editor bundle.  To build macSVG.app, open \u0026quot;macSVG.xcworkspace\u0026quot; in Xcode, set the build target to \u0026quot;macSVG Debug\u0026quot;, build and run.\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eSee the macSVG.org Developer page for more info: https://macsvg.org/developer/\u003c/strong\u003e\u003c/p\u003e\n\n\u003ch1 id=\"toc_2\"\u003eFuture project goals:\u003c/h1\u003e\n\n\u003cp\u003eMigration to Swift language, and Swift Package Manager for importing third-party code.\u003c/p\u003e\n\n\u003cp\u003eWe are monitoring the WebKit project concerning their plans to remove the Legacy WebView framework, which is used extensively in macSVG.  \u003c/p\u003e\n\n\u003cp\u003eCopyright (c) 2016-2022 by ArkPhone, LLC.\u003c/p\u003e\n\n\u003cp\u003eAll trademarks are the property of their respective holders.\u003c/p\u003e\n\n\n\n\n\u003c/body\u003e\n\n\u003c/html\u003e\n","funding_links":[],"categories":["Applications","Objective-C"],"sub_categories":["Graphics","🎨 Graphics (15)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsward2%2FmacSVG","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsward2%2FmacSVG","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsward2%2FmacSVG/lists"}